mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-15 03:07:56 +01:00
[installer] Support per-user installation (#24087)
* Add per user installer
* Separate upgrade codes for per machine and per user installation
Move per machine check to bootstrapper
Move all defines to common.wxs
Fix CI
* Update installer/PowerToysSetup/generateFileList.ps1
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>
* Update installer/PowerToysSetup/generateAllFileComponents.ps1
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>
* Update installer/PowerToysSetup/generateFileList.ps1
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>
* expect.txt
* Revert "Update installer/PowerToysSetup/generateFileList.ps1"
This reverts commit 34545dab9c.
* Update release CI to build both installers
* Revert bundle name change
It messes up app ID for per-user installation which ends up breaking winget update
of the per-user PT
* spellcheck
* Fix bad merge
* Add RegistryPreview
* Include backup_restore_settings.json
* Revert testing endpoint change
---------
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>
This commit is contained in:
@@ -23,16 +23,17 @@
|
||||
Language="1033"
|
||||
Version="$(var.Version)"
|
||||
Manufacturer="Microsoft Corporation"
|
||||
UpgradeCode="42B84BF7-5FBF-473B-9C8B-049DC16F7708">
|
||||
UpgradeCode="$(var.UpgradeCodeGUID)">
|
||||
|
||||
<Package InstallerVersion="500" Compressed="yes" InstallScope="perMachine" InstallPrivileges="elevated" Platform="$(var.PlatformLK)" />
|
||||
|
||||
<Package InstallerVersion="500" Compressed="yes" InstallScope="$(var.InstallScope)" InstallPrivileges="$(var.InstallPrivileges)" Platform="$(var.PlatformLK)" />
|
||||
|
||||
<MajorUpgrade DowngradeErrorMessage="A later version of [ProductName] is already installed." />
|
||||
|
||||
<Upgrade Id="42B84BF7-5FBF-473B-9C8B-049DC16F7708">
|
||||
<Upgrade Id="$(var.UpgradeCodeGUID)">
|
||||
<UpgradeVersion
|
||||
Minimum="0.0.0" Maximum="$(var.Version)"
|
||||
Property="PREVIOUSVERSIONSINSTALLED"
|
||||
Property="PREVIOUSVERSIONSINSTALLED"
|
||||
IncludeMinimum="yes" IncludeMaximum="no" />
|
||||
</Upgrade>
|
||||
|
||||
@@ -51,7 +52,7 @@
|
||||
<Property Id="ARPPRODUCTICON" Value="powertoys.exe" />
|
||||
|
||||
<Feature Id="CoreFeature" Title="PowerToys" AllowAdvertise="no" Absent="disallow" TypicalDefault="install"
|
||||
Description="Contains the Shortcut Guide and Fancy Zones features.">
|
||||
Description="Contains all PowerToys features.">
|
||||
<ComponentGroupRef Id="CoreComponents" />
|
||||
|
||||
<ComponentGroupRef Id="AlwaysOnTopComponentGroup" />
|
||||
@@ -118,13 +119,13 @@
|
||||
<Property Id="CREATESCHEDULEDTASK" Value="1"/>
|
||||
<Property Id="WixShellExecTarget" Value="[#PowerToys_ActionRunner.exe]" />
|
||||
|
||||
<SetProperty Action="SetDEFAULTBOOTSTRAPPERINSTALLFOLDER" Id="DEFAULTBOOTSTRAPPERINSTALLFOLDER" Value="[ProgramFiles64Folder]PowerToys" Before="SetBOOTSTRAPPERINSTALLFOLDER" Sequence="execute">
|
||||
</SetProperty>
|
||||
<SetProperty Action="SetDEFAULTBOOTSTRAPPERINSTALLFOLDER" Id="DEFAULTBOOTSTRAPPERINSTALLFOLDER" Value="[$(var.DefaultInstallDir)]PowerToys" Before="SetBOOTSTRAPPERINSTALLFOLDER" Sequence="execute"></SetProperty>
|
||||
|
||||
<!-- In case we didn't receive a value from the bootstrapper. -->
|
||||
<SetProperty Action="SetBOOTSTRAPPERINSTALLFOLDER" Id="BOOTSTRAPPERINSTALLFOLDER" Value="[DEFAULTBOOTSTRAPPERINSTALLFOLDER]" Before="DetectPrevInstallPath" Sequence="execute">
|
||||
<![CDATA[BOOTSTRAPPERINSTALLFOLDER = ""]]>
|
||||
</SetProperty>
|
||||
<!-- Have to compare value sent by bootstrapper to default to avoid using it, as a check to verify it's not default. This hack can be removed if it's possible to set the bootstrapper option to the previous install folder -->
|
||||
<!-- Have to compare value sent by bootstrapper to default to avoid using it, as a check to verify it's not default. This hack can be removed if it's possible to set the bootstrapper option to the previous install folder-->
|
||||
<SetProperty Action="SetINSTALLFOLDERTOPREVIOUSINSTALLFOLDER" Id="INSTALLFOLDER" Value="[PREVIOUSINSTALLFOLDER]" After="DetectPrevInstallPath" Sequence="execute">
|
||||
<![CDATA[BOOTSTRAPPERINSTALLFOLDER = DEFAULTBOOTSTRAPPERINSTALLFOLDER AND PREVIOUSINSTALLFOLDER <> ""]]>
|
||||
</SetProperty>
|
||||
@@ -132,6 +133,7 @@
|
||||
<![CDATA[BOOTSTRAPPERINSTALLFOLDER <> DEFAULTBOOTSTRAPPERINSTALLFOLDER OR PREVIOUSINSTALLFOLDER = ""]]>
|
||||
</SetProperty>
|
||||
|
||||
<SetProperty Id="InstallScope" Value="$(var.InstallScope)" Before="DetectPrevInstallPath" Sequence="execute"></SetProperty>
|
||||
<InstallExecuteSequence>
|
||||
<Custom Action="DetectPrevInstallPath" After="AppSearch" />
|
||||
<Custom Action="SetRegisterPowerToysSchTaskParam" Before="RegisterPowerToysSchTask" />
|
||||
@@ -424,7 +426,7 @@
|
||||
<!-- Installation directory structure -->
|
||||
<Fragment>
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="ProgramFiles64Folder">
|
||||
<Directory Id="$(var.DefaultInstallDir)">
|
||||
<Directory Id="INSTALLFOLDER" Name="PowerToys">
|
||||
<Directory Id="DllsFolder" Name="dll">
|
||||
<Directory Id="DotnetDlls" Name="dotnet" />
|
||||
@@ -513,79 +515,62 @@
|
||||
<!-- Launcher -->
|
||||
<Directory Id="LauncherInstallFolder" Name="launcher">
|
||||
<Directory Id="LauncherImagesFolder" Name="Images" />
|
||||
<Directory Id="LauncherPropertiesFolder" Name="Properties" />
|
||||
|
||||
<!-- Plugins -->
|
||||
<Directory Id="LauncherPluginsFolder" Name="Plugins">
|
||||
<Directory Id="WebSearchPluginFolder" Name="WebSearch">
|
||||
<Directory Id="WebSearchImagesFolder" Name="Images" />
|
||||
<Directory Id="WebSearchLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
<Directory Id="CalculatorPluginFolder" Name="Calculator">
|
||||
<Directory Id="CalculatorImagesFolder" Name="Images" />
|
||||
<Directory Id="CalculatorLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
<Directory Id="FolderPluginFolder" Name="Folder">
|
||||
<Directory Id="FolderPluginImagesFolder" Name="Images" />
|
||||
<Directory Id="FolderPluginLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
<Directory Id="ProgramPluginFolder" Name="Program">
|
||||
<Directory Id="ProgramImagesFolder" Name="Images" />
|
||||
<Directory Id="ProgramLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
<Directory Id="ShellPluginFolder" Name="Shell">
|
||||
<Directory Id="ShellImagesFolder" Name="Images" />
|
||||
<Directory Id="ShellLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
<Directory Id="IndexerPluginFolder" Name="Indexer">
|
||||
<Directory Id="IndexerImagesFolder" Name="Images" />
|
||||
<Directory Id="IndexerLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
<Directory Id="UriPluginFolder" Name="Uri">
|
||||
<Directory Id="UriImagesFolder" Name="Images" />
|
||||
<Directory Id="UriLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
<Directory Id="HistoryPluginFolder" Name="History">
|
||||
<Directory Id="HistoryImagesFolder" Name="Images" />
|
||||
<Directory Id="HistoryLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
<Directory Id="UnitConverterPluginFolder" Name="UnitConverter">
|
||||
<Directory Id="UnitConverterImagesFolder" Name="Images" />
|
||||
<Directory Id="UnitConverterLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
<Directory Id="VSCodeWorkspacesPluginFolder" Name="VSCodeWorkspace">
|
||||
<Directory Id="VSCodeWorkspaceImagesFolder" Name="Images" />
|
||||
<Directory Id="VSCodeWorkspaceLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
<Directory Id="WindowWalkerPluginFolder" Name="WindowWalker">
|
||||
<Directory Id="WindowWalkerImagesFolder" Name="Images" />
|
||||
<Directory Id="WindowWalkerLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
<Directory Id="OneNotePluginFolder" Name="OneNote">
|
||||
<Directory Id="OneNoteImagesFolder" Name="Images" />
|
||||
<Directory Id="OneNoteLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
<Directory Id="RegistryPluginFolder" Name="Registry">
|
||||
<Directory Id="RegistryImagesFolder" Name="Images" />
|
||||
<Directory Id="RegistryLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
<Directory Id="ServicePluginFolder" Name="Service">
|
||||
<Directory Id="ServiceImagesFolder" Name="Images" />
|
||||
</Directory>
|
||||
<Directory Id="WindowsTerminalPluginFolder" Name="WindowsTerminal">
|
||||
<Directory Id="WindowsTerminalImagesFolder" Name="Images" />
|
||||
<Directory Id="WindowsTerminalLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
<Directory Id="SystemPluginFolder" Name="System">
|
||||
<Directory Id="SystemImagesFolder" Name="Images" />
|
||||
</Directory>
|
||||
<Directory Id="TimeDatePluginFolder" Name="TimeDate">
|
||||
<Directory Id="TimeDateImagesFolder" Name="Images" />
|
||||
<Directory Id="TimeDateLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
<Directory Id="WindowsSettingsPluginFolder" Name="WindowsSettings">
|
||||
<Directory Id="WindowsSettingsImagesFolder" Name="Images" />
|
||||
<Directory Id="WindowsSettingsLanguagesFolder" Name="Languages" />
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Directory>
|
||||
|
||||
Reference in New Issue
Block a user