[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:
Stefan Markovic
2023-03-31 12:23:57 +02:00
committed by GitHub
parent 07579c910a
commit 870f8e3571
48 changed files with 3263 additions and 1128 deletions

View File

@@ -4,40 +4,31 @@
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define MouseJumpUIComponentFiles=Microsoft.Windows.SDK.NET.dll;System.IO.Abstractions.dll;PowerToys.MouseJumpUI.deps.json;PowerToys.MouseJumpUI.dll;PowerToys.MouseJumpUI.exe;PowerToys.MouseJumpUI.runtimeconfig.json;WinRT.Runtime.dll;PowerToys.ManagedCommon.dll;PowerToys.GPOWrapper.dll;PowerToys.ManagedTelemetry.dll;Ijwhost.dll;System.Management.dll?>
<?define MouseUtilsFiles=?>
<?define MouseUtilsFilesPath=$(var.BinDir)modules\$(var.MouseUtilsProjectName)\?>
<?define MouseJumpUIFiles=?>
<?define MouseJumpUIFilesPath=$(var.BinDir)modules\$(var.MouseUtilsProjectName)\MouseJumpUI\?>
<Fragment>
<!-- MouseUtils -->
<DirectoryRef Id="MouseUtilsInstallFolder" FileSource="$(var.BinDir)modules\$(var.MouseUtilsProjectName)">
<Component Id="Module_FindMyMouse" Win64="yes">
<File Source="$(var.BinDir)modules\$(var.MouseUtilsProjectName)\PowerToys.FindMyMouse.dll" KeyPath="yes" />
</Component>
<Component Id="Module_MouseHighlighter" Win64="yes">
<File Source="$(var.BinDir)modules\$(var.MouseUtilsProjectName)\PowerToys.MouseHighlighter.dll" KeyPath="yes" />
</Component>
<Component Id="Module_MousePointerCrosshairs" Win64="yes">
<File Source="$(var.BinDir)modules\$(var.MouseUtilsProjectName)\PowerToys.MousePointerCrosshairs.dll" KeyPath="yes" />
</Component>
<Component Id="Module_MouseJump" Win64="yes">
<File Source="$(var.BinDir)modules\$(var.MouseUtilsProjectName)\PowerToys.MouseJump.dll" KeyPath="yes" />
</Component>
<DirectoryRef Id="MouseUtilsInstallFolder" FileSource="$(var.MouseUtilsFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--MouseUtilsFiles_Component_Def-->
</DirectoryRef>
<!-- MouseJump UI -->
<?foreach File in $(var.MouseJumpUIComponentFiles)?>
<Component Id="MouseJumpUIComp_$(var.File)" Win64="yes" Directory="MouseJumpUIFolder">
<File Id="MouseJumpUIFile_$(var.File)" Source="$(var.BinDir)modules\$(var.MouseUtilsProjectName)\MouseJumpUI\$(var.File)" />
</Component>
<?endforeach?>
<DirectoryRef Id="MouseJumpUIFolder" FileSource="$(var.MouseJumpUIFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--MouseJumpUIFiles_Component_Def-->
</DirectoryRef>
<ComponentGroup Id="MouseUtilsComponentGroup" Directory="INSTALLFOLDER">
<ComponentRef Id="Module_FindMyMouse"/>
<ComponentRef Id="Module_MouseHighlighter"/>
<ComponentRef Id="Module_MousePointerCrosshairs" />
<ComponentRef Id="Module_MouseJump" />
<?foreach File in $(var.MouseJumpUIComponentFiles)?>
<ComponentRef Id="MouseJumpUIComp_$(var.File)" />
<?endforeach?>
<ComponentGroup Id="MouseUtilsComponentGroup">
<Component Id="RemoveMouseUtilsFolder" Guid="4F535EA2-0879-4243-A35C-C4DBFCA50B1A" Directory="MouseUtilsInstallFolder" >
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveMouseUtilsFolder" Value="" KeyPath="yes"/>
</RegistryKey>
<RemoveFolder Id="RemoveFolderMouseUtilsFolder" Directory="MouseUtilsInstallFolder" On="uninstall"/>
<RemoveFolder Id="RemoveFolderMouseJumpUIFolder" Directory="MouseJumpUIFolder" On="uninstall"/>
</Component>
</ComponentGroup>
</Fragment>