From 18902cdebb16da62dbff59d355a31144ef6efaea Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Fri, 17 Sep 2021 11:06:21 -0700 Subject: [PATCH] Merge pull request #11843 from ericstj/x64onARM64 Retarget DOTNETHOME when installing x64 on ARM64 --- .../packaging/windows/clisdk/bundle.wxs | 50 +++++++++++++++---- .../packaging/windows/clisdk/dotnet.wxs | 10 ++-- .../windows/clisdk/dotnethome_x64.wxs | 38 ++++++++++++++ .../windows/clisdk/generatemanifestsmsi.ps1 | 2 + .../packaging/windows/clisdk/generatemsi.ps1 | 2 + .../windows/clisdk/generatetemplatesmsi.ps1 | 2 + .../packaging/windows/clisdk/manifests.wxs | 4 ++ .../packaging/windows/clisdk/registrykeys.wxs | 42 ++++++++++++++++ .../packaging/windows/clisdk/templates.wxs | 4 ++ 9 files changed, 137 insertions(+), 17 deletions(-) create mode 100644 src/redist/targets/packaging/windows/clisdk/dotnethome_x64.wxs diff --git a/src/redist/targets/packaging/windows/clisdk/bundle.wxs b/src/redist/targets/packaging/windows/clisdk/bundle.wxs index b433f6444..a8271d4e6 100644 --- a/src/redist/targets/packaging/windows/clisdk/bundle.wxs +++ b/src/redist/targets/packaging/windows/clisdk/bundle.wxs @@ -11,11 +11,16 @@ Compressed="yes"> - WixBundleInstalled OR ((NOT (DOTNETHOME_X64 ~= DOTNETHOME_X86)) OR DOTNETHOMESIMILARITYCHECKOVERRIDE) + WixBundleInstalled OR (NOT DOTNETHOME_X64 ~= DOTNETHOME_X86) OR DOTNETHOMESIMILARITYCHECKOVERRIDE - WixBundleInstalled OR ((NOT (DOTNETHOME_ARM64 ~= DOTNETHOME_X86)) OR DOTNETHOMESIMILARITYCHECKOVERRIDE) + WixBundleInstalled OR (NOT DOTNETHOME_ARM64 ~= DOTNETHOME_X86) OR DOTNETHOMESIMILARITYCHECKOVERRIDE + + + + + WixBundleInstalled OR (NOT DOTNETHOME_ARM64 ~= DOTNETHOME_X64) OR (NOT NativeProcessorArchitecture="ARM64") OR DOTNETHOMESIMILARITYCHECKOVERRIDE @@ -27,7 +32,7 @@ - + - + - - + + + + - + + + + + - - - + + + diff --git a/src/redist/targets/packaging/windows/clisdk/dotnet.wxs b/src/redist/targets/packaging/windows/clisdk/dotnet.wxs index 211883bb3..902a2505f 100644 --- a/src/redist/targets/packaging/windows/clisdk/dotnet.wxs +++ b/src/redist/targets/packaging/windows/clisdk/dotnet.wxs @@ -30,12 +30,6 @@ - - - - - - + + + + diff --git a/src/redist/targets/packaging/windows/clisdk/dotnethome_x64.wxs b/src/redist/targets/packaging/windows/clisdk/dotnethome_x64.wxs new file mode 100644 index 000000000..5e30f9871 --- /dev/null +++ b/src/redist/targets/packaging/windows/clisdk/dotnethome_x64.wxs @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + ? + + + + + + NOT %PROCESSOR_ARCHITECTURE="$(var.InstallerArchitecture)" + + + + + + + + NON_NATIVE_ARCHITECTURE AND NOT DOTNETHOME + + + + \ No newline at end of file diff --git a/src/redist/targets/packaging/windows/clisdk/generatemanifestsmsi.ps1 b/src/redist/targets/packaging/windows/clisdk/generatemanifestsmsi.ps1 index 4ef97e1dc..bef841dc2 100644 --- a/src/redist/targets/packaging/windows/clisdk/generatemanifestsmsi.ps1 +++ b/src/redist/targets/packaging/windows/clisdk/generatemanifestsmsi.ps1 @@ -65,6 +65,7 @@ function RunCandle -ext WixDependencyExtension.dll ` "$PSScriptRoot\manifests.wxs" ` "$PSScriptRoot\provider.wxs" ` + "$PSScriptRoot\dotnethome_x64.wxs" ` $InstallFileswsx Write-Information "Candle output: $candleOutput" @@ -91,6 +92,7 @@ function RunLight -cultures:en-us ` manifests.wixobj ` provider.wixobj ` + dotnethome_x64.wixobj ` $InstallFilesWixobj ` -b "$inputDir" ` -b "$PSScriptRoot" ` diff --git a/src/redist/targets/packaging/windows/clisdk/generatemsi.ps1 b/src/redist/targets/packaging/windows/clisdk/generatemsi.ps1 index 47d83909c..13b4e9636 100644 --- a/src/redist/targets/packaging/windows/clisdk/generatemsi.ps1 +++ b/src/redist/targets/packaging/windows/clisdk/generatemsi.ps1 @@ -73,6 +73,7 @@ function RunCandle -arch "$Architecture" ` -ext WixDependencyExtension.dll ` "$PSScriptRoot\dotnet.wxs" ` + "$PSScriptRoot\dotnethome_x64.wxs" ` "$PSScriptRoot\provider.wxs" ` "$PSScriptRoot\registrykeys.wxs" ` $InstallFileswsx @@ -100,6 +101,7 @@ function RunLight $lightOutput = .\light.exe -nologo -ext WixUIExtension -ext WixDependencyExtension -ext WixUtilExtension ` -cultures:en-us ` dotnet.wixobj ` + dotnethome_x64.wixobj ` provider.wixobj ` registrykeys.wixobj ` $InstallFilesWixobj ` diff --git a/src/redist/targets/packaging/windows/clisdk/generatetemplatesmsi.ps1 b/src/redist/targets/packaging/windows/clisdk/generatetemplatesmsi.ps1 index 151767c7e..ecbb68ba6 100644 --- a/src/redist/targets/packaging/windows/clisdk/generatetemplatesmsi.ps1 +++ b/src/redist/targets/packaging/windows/clisdk/generatetemplatesmsi.ps1 @@ -63,6 +63,7 @@ function RunCandle -dDependencyKeyName="$DependencyKeyName" ` -arch "$Architecture" ` -ext WixDependencyExtension.dll ` + "$PSScriptRoot\dotnethome_x64.wxs" ` "$PSScriptRoot\templates.wxs" ` "$PSScriptRoot\provider.wxs" ` $InstallFileswsx @@ -89,6 +90,7 @@ function RunLight $lightOutput = .\light.exe -nologo -ext WixUIExtension -ext WixDependencyExtension -ext WixUtilExtension ` -cultures:en-us ` + dotnethome_x64.wixobj ` templates.wixobj ` provider.wixobj ` $InstallFilesWixobj ` diff --git a/src/redist/targets/packaging/windows/clisdk/manifests.wxs b/src/redist/targets/packaging/windows/clisdk/manifests.wxs index a2ef49c4b..27a3017d0 100644 --- a/src/redist/targets/packaging/windows/clisdk/manifests.wxs +++ b/src/redist/targets/packaging/windows/clisdk/manifests.wxs @@ -32,5 +32,9 @@ + + + + diff --git a/src/redist/targets/packaging/windows/clisdk/registrykeys.wxs b/src/redist/targets/packaging/windows/clisdk/registrykeys.wxs index a84391c81..02d94f810 100644 --- a/src/redist/targets/packaging/windows/clisdk/registrykeys.wxs +++ b/src/redist/targets/packaging/windows/clisdk/registrykeys.wxs @@ -34,5 +34,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NOT DOTNETHOME_X86 AND DOTNETHOME_X86_SEARCH + + + NOT DOTNETHOME_X64 AND DOTNETHOME_X64_SEARCH AND %PROCESSOR_ARCHITECTURE="AMD64" + + + NOT DOTNETHOME_X64 AND DOTNETHOME_X64_ALT_SEARCH AND NOT %PROCESSOR_ARCHITECTURE="AMD64" + + + NOT DOTNETHOME_ARM64 AND DOTNETHOME_ARM64_SEARCH + + diff --git a/src/redist/targets/packaging/windows/clisdk/templates.wxs b/src/redist/targets/packaging/windows/clisdk/templates.wxs index a2ef49c4b..27a3017d0 100644 --- a/src/redist/targets/packaging/windows/clisdk/templates.wxs +++ b/src/redist/targets/packaging/windows/clisdk/templates.wxs @@ -32,5 +32,9 @@ + + + +