mirror of
https://github.com/python/cpython.git
synced 2024-12-12 19:33:52 +08:00
Issue #25071: Windows installer should not require TargetDir parameter when installing quietly
This commit is contained in:
commit
a004c54f94
16
Misc/NEWS
16
Misc/NEWS
@ -189,6 +189,22 @@ Build
|
|||||||
when external libraries are not available.
|
when external libraries are not available.
|
||||||
|
|
||||||
|
|
||||||
|
Windows
|
||||||
|
-------
|
||||||
|
|
||||||
|
- Issue #25022: Removed very outdated PC/example_nt/ directory.
|
||||||
|
|
||||||
|
What's New in Python 3.5.0 final?
|
||||||
|
=================================
|
||||||
|
|
||||||
|
Release date: 2015-09-13
|
||||||
|
|
||||||
|
Build
|
||||||
|
-----
|
||||||
|
|
||||||
|
- Issue #25071: Windows installer should not require TargetDir
|
||||||
|
parameter when installing quietly
|
||||||
|
|
||||||
What's New in Python 3.5.0 release candidate 4?
|
What's New in Python 3.5.0 release candidate 4?
|
||||||
===============================================
|
===============================================
|
||||||
|
|
||||||
|
@ -723,6 +723,36 @@ public: // IBootstrapperApplication
|
|||||||
hrStatus = EvaluateConditions();
|
hrStatus = EvaluateConditions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SUCCEEDED(hrStatus)) {
|
||||||
|
// Ensure the default path has been set
|
||||||
|
LONGLONG installAll;
|
||||||
|
LPWSTR targetDir = nullptr;
|
||||||
|
LPWSTR defaultTargetDir = nullptr;
|
||||||
|
|
||||||
|
hrStatus = BalGetStringVariable(L"TargetDir", &targetDir);
|
||||||
|
if (FAILED(hrStatus) || !targetDir || !targetDir[0]) {
|
||||||
|
ReleaseStr(targetDir);
|
||||||
|
targetDir = nullptr;
|
||||||
|
|
||||||
|
if (FAILED(BalGetNumericVariable(L"InstallAllUsers", &installAll))) {
|
||||||
|
installAll = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
hrStatus = BalGetStringVariable(
|
||||||
|
installAll ? L"DefaultAllUsersTargetDir" : L"DefaultJustForMeTargetDir",
|
||||||
|
&defaultTargetDir
|
||||||
|
);
|
||||||
|
|
||||||
|
if (SUCCEEDED(hrStatus) && defaultTargetDir) {
|
||||||
|
if (defaultTargetDir[0] && SUCCEEDED(BalFormatString(defaultTargetDir, &targetDir))) {
|
||||||
|
hrStatus = _engine->SetVariableString(L"TargetDir", targetDir);
|
||||||
|
ReleaseStr(targetDir);
|
||||||
|
}
|
||||||
|
ReleaseStr(defaultTargetDir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SetState(PYBA_STATE_DETECTED, hrStatus);
|
SetState(PYBA_STATE_DETECTED, hrStatus);
|
||||||
|
|
||||||
// If we're not interacting with the user or we're doing a layout or we're just after a force restart
|
// If we're not interacting with the user or we're doing a layout or we're just after a force restart
|
||||||
|
Loading…
Reference in New Issue
Block a user