diff options
-rw-r--r-- | Misc/NEWS.d/next/Windows/2022-03-04-00-24-55.bpo-46744.tneWFr.rst | 3 | ||||
-rw-r--r-- | Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp | 34 | ||||
-rw-r--r-- | Tools/msi/bundle/bundle.wxs | 5 |
3 files changed, 4 insertions, 38 deletions
diff --git a/Misc/NEWS.d/next/Windows/2022-03-04-00-24-55.bpo-46744.tneWFr.rst b/Misc/NEWS.d/next/Windows/2022-03-04-00-24-55.bpo-46744.tneWFr.rst new file mode 100644 index 0000000..25f9e7a --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2022-03-04-00-24-55.bpo-46744.tneWFr.rst @@ -0,0 +1,3 @@ +The default all users install directory for ARM64 is now under the native +``Program Files`` folder, rather than ``Program Files (Arm)`` which is +intended for ARM (32-bit) files. diff --git a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp index 226416f..fdc2a21 100644 --- a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp +++ b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp @@ -1501,9 +1501,6 @@ private: hr = UpdateUIStrings(_command.action); BalExitOnFailure(hr, "Failed to load UI strings."); - hr = FindProgramFilesArm(); - BalExitOnFailure(hr, "Fatal error locating Program Files (Arm)"); - GetBundleFileVersion(); // don't fail if we couldn't get the version info; best-effort only LExit: @@ -2184,37 +2181,6 @@ private: return hr; } - HRESULT FindProgramFilesArm() { - wchar_t buffer[MAX_PATH + 1]; - DWORD bufferLen = MAX_PATH; - LSTATUS res = RegGetValueW( - HKEY_LOCAL_MACHINE, - L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion", - L"ProgramFilesDir (Arm)", - RRF_RT_REG_SZ | RRF_RT_REG_EXPAND_SZ | RRF_SUBKEY_WOW6464KEY, - NULL, - buffer, - &bufferLen - ); - if (res != ERROR_SUCCESS) { - // ProgramFilesArmFolder will default to ProgramFilesFolder. We only report - // an error if the value existed, as it will simply just be absent on non-ARM - // devices. - if (res != ERROR_FILE_NOT_FOUND) { - BalLog(BOOTSTRAPPER_LOG_LEVEL_ERROR, "Failed to query 'ProgramFilesDir (Arm)': error code %d", res); - } - return S_OK; - } - if (buffer[0]) { - wchar_t *p = &buffer[bufferLen / sizeof(wchar_t) - 1]; - while (*p == L'\\' || *p == L'\0') { p -= 1; } - *++p = L'\\'; - *++p = L'\0'; - _engine->SetVariableString(L"ProgramFilesArmFolder", buffer); - } - return S_OK; - } - // // OnPlan - plan the detected changes. // diff --git a/Tools/msi/bundle/bundle.wxs b/Tools/msi/bundle/bundle.wxs index 340c72a..0683f87 100644 --- a/Tools/msi/bundle/bundle.wxs +++ b/Tools/msi/bundle/bundle.wxs @@ -26,9 +26,6 @@ <Variable Name="WinVer" Value="$(var.MajorVersionNumber).$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)" /> <Variable Name="WinVerNoDot" Value="$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)" /> - <!-- A more accurate value may be calculated by the bootstrapper --> - <Variable Name="ProgramFilesArmFolder" Value="[ProgramFilesFolder]" bal:Overridable="yes" /> - <Variable Name="InstallAllUsers" Value="0" bal:Overridable="yes" /> <?if "$(var.PyTestExt)"="" ?> <Variable Name="InstallLauncherAllUsers" Value="1" bal:Overridable="yes" /> @@ -40,7 +37,7 @@ <Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFiles64Folder]Python[WinVerNoDot]" bal:Overridable="yes" /> <Variable Name="TargetPlatform" Value="x64" /> <?elseif $(var.Platform)~="ARM64" ?> - <Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFilesArmFolder]Python[WinVerNoDot]" bal:Overridable="yes" /> + <Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFiles64Folder]Python[WinVerNoDot]" bal:Overridable="yes" /> <Variable Name="TargetPlatform" Value="ARM64" /> <?else ?> <Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFilesFolder]Python[WinVerNoDot]" bal:Overridable="yes" /> |