Commit 8ffe4fde authored by Steve Dower's avatar Steve Dower

Only detects features from previous version when a bundle is found.

Otherwise, stray registry entries would cause issues.
Also fixes an accelerator collision and improves UAC icons when upgrading.
parent b9669811
...@@ -52,7 +52,7 @@ Creates shortcuts and file associations</String> ...@@ -52,7 +52,7 @@ Creates shortcuts and file associations</String>
<String Id="InstallSimpleButtonNote">Use settings preselected by your administrator <String Id="InstallSimpleButtonNote">Use settings preselected by your administrator
[SimpleInstallDescription]</String> [SimpleInstallDescription]</String>
<String Id="InstallUpgradeButton">&amp;Upgrade Now</String> <String Id="InstallUpgradeButton">Up&amp;grade Now</String>
<String Id="InstallUpgradeButtonNote">[TargetDir] <String Id="InstallUpgradeButtonNote">[TargetDir]
Replaces your existing installation without changing settings. Replaces your existing installation without changing settings.
......
...@@ -674,6 +674,8 @@ public: // IBootstrapperApplication ...@@ -674,6 +674,8 @@ public: // IBootstrapperApplication
hr hr
); );
} }
LoadOptionalFeatureStates(_engine);
} else if (BOOTSTRAPPER_RELATED_OPERATION_NONE == operation) { } else if (BOOTSTRAPPER_RELATED_OPERATION_NONE == operation) {
if (_command.action == BOOTSTRAPPER_ACTION_INSTALL) { if (_command.action == BOOTSTRAPPER_ACTION_INSTALL) {
LOC_STRING *pLocString = nullptr; LOC_STRING *pLocString = nullptr;
...@@ -2556,7 +2558,14 @@ private: ...@@ -2556,7 +2558,14 @@ private:
BOOL WillElevate() { BOOL WillElevate() {
static BAL_CONDITION WILL_ELEVATE_CONDITION = { static BAL_CONDITION WILL_ELEVATE_CONDITION = {
L"not WixBundleElevated and (InstallAllUsers or (InstallLauncherAllUsers and Include_launcher))", L"not WixBundleElevated and ("
/*Elevate when installing for all users*/
L"InstallAllUsers or"
/*Elevate when installing the launcher for all users and it was not detected*/
L"(InstallLauncherAllUsers and Include_launcher and not DetectedLauncher) or"
/*Elevate when the launcher was installed for all users and it is being removed*/
L"(DetectedLauncher and DetectedLauncherAllUsers and not Include_launcher)"
L")",
L"" L""
}; };
BOOL result; BOOL result;
...@@ -2884,6 +2893,10 @@ private: ...@@ -2884,6 +2893,10 @@ private:
pEngine->SetVariableNumeric(L"Include_launcher", 0); pEngine->SetVariableNumeric(L"Include_launcher", 0);
} else if (res == ERROR_SUCCESS) { } else if (res == ERROR_SUCCESS) {
pEngine->SetVariableNumeric(L"Include_launcher", 1); pEngine->SetVariableNumeric(L"Include_launcher", 1);
pEngine->SetVariableNumeric(L"DetectedLauncher", 1);
pEngine->SetVariableNumeric(L"InstallLauncherAllUsers", (hkHive == HKEY_LOCAL_MACHINE) ? 1 : 0);
pEngine->SetVariableNumeric(L"DetectedLauncherAllUsers", (hkHive == HKEY_LOCAL_MACHINE) ? 1 : 0);
pEngine->SetVariableString(L"InstallLauncherAllUsersState", L"disable");
} }
res = RegQueryValueExW(hKey, L"AssociateFiles", nullptr, nullptr, nullptr, nullptr); res = RegQueryValueExW(hKey, L"AssociateFiles", nullptr, nullptr, nullptr, nullptr);
...@@ -3101,7 +3114,6 @@ public: ...@@ -3101,7 +3114,6 @@ public:
_hBAFModule = nullptr; _hBAFModule = nullptr;
_baFunction = nullptr; _baFunction = nullptr;
LoadOptionalFeatureStates(pEngine);
EnsureTargetDir(); EnsureTargetDir();
} }
......
...@@ -65,6 +65,7 @@ ...@@ -65,6 +65,7 @@
<Variable Name="Include_debug" Value="0" bal:Overridable="yes" /> <Variable Name="Include_debug" Value="0" bal:Overridable="yes" />
<Variable Name="LauncherOnly" Value="0" bal:Overridable="yes" /> <Variable Name="LauncherOnly" Value="0" bal:Overridable="yes" />
<Variable Name="DetectedLauncher" Value="0" />
<Variable Name="AssociateFiles" Value="1" bal:Overridable="yes" /> <Variable Name="AssociateFiles" Value="1" bal:Overridable="yes" />
<Variable Name="Shortcuts" Value="1" bal:Overridable="yes" /> <Variable Name="Shortcuts" Value="1" bal:Overridable="yes" />
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment