mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-15 19:27:56 +01:00
135 lines
8.0 KiB
XML
135 lines
8.0 KiB
XML
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
|
|
|
|
<?include $(sys.CURRENTDIR)\Common.wxi?>
|
|
|
|
<Fragment>
|
|
<DirectoryRef Id="INSTALLFOLDER" FileSource="$(var.BinDir)">
|
|
<Component Id="powertoys_per_machine_comp" Bitness="always64">
|
|
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys">
|
|
<RegistryValue Type="string" Name="InstallScope" Value="$(var.InstallScope)" />
|
|
</RegistryKey>
|
|
</Component>
|
|
<?if $(var.PerUser) = "true" ?>
|
|
<Component Id="powertoys_env_path_user" Bitness="always64">
|
|
<!-- Anchor registry for component key path -->
|
|
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
|
|
<RegistryValue Type="string" Name="powertoys_env_path_user" Value="" KeyPath="yes" />
|
|
</RegistryKey>
|
|
<!-- Append DSCModules folder to current user's PATH for DSC v3 usage -->
|
|
<Environment Id="AddPowerToysToUserPath" Name="PATH" Action="set" Part="last" System="no" Value="[DSCModulesReferenceFolder]" />
|
|
</Component>
|
|
<?else?>
|
|
<Component Id="powertoys_env_path_machine" Bitness="always64">
|
|
<!-- Anchor registry for component key path -->
|
|
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
|
|
<RegistryValue Type="string" Name="powertoys_env_path_machine" Value="" KeyPath="yes" />
|
|
</RegistryKey>
|
|
<!-- Append DSCModules folder to machine PATH for DSC v3 usage -->
|
|
<Environment Id="AddPowerToysToMachinePath" Name="PATH" Action="set" Part="last" System="yes" Value="[DSCModulesReferenceFolder]" />
|
|
</Component>
|
|
<?endif?>
|
|
<Component Id="powertoys_toast_clsid" Bitness="always64">
|
|
<RemoveFolder Id="Remove_powertoys_toast_clsid" On="uninstall" />
|
|
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\CLSID\{DD5CACDA-7C2E-4997-A62A-04A597B58F76}">
|
|
<RegistryValue Type="string" Value="PowerToys Toast Notifications Background Activator" />
|
|
<RegistryValue Type="string" Key="LocalServer32" Value="[INSTALLFOLDER]PowerToys.exe -ToastActivated" />
|
|
<RegistryValue Type="string" Key="LocalServer32" Name="ThreadingModel" Value="Apartment" />
|
|
</RegistryKey>
|
|
</Component>
|
|
<Component Id="powertoys_exe" Guid="30261594-41A6-4509-AD09-FBC4E692F441" Bitness="always64">
|
|
<File Id="PowerToys.exe" Name="PowerToys.exe" Checksum="yes" />
|
|
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys">
|
|
<RegistryValue Type="string" Name="URL Protocol" Value="" KeyPath="yes" />
|
|
<RegistryValue Type="string" Value="URL:PowerToys custom internal URI protocol" />
|
|
<RegistryKey Key="DefaultIcon">
|
|
<RegistryValue Type="string" Value="PowerToys.exe" />
|
|
</RegistryKey>
|
|
<RegistryKey Key="shell\open\command">
|
|
<RegistryValue Type="string" Value=""[INSTALLFOLDER]PowerToys.exe" "%1"" />
|
|
</RegistryKey>
|
|
</RegistryKey>
|
|
</Component>
|
|
<Component Id="License_rtf" Guid="632C60DF-0DDC-4F14-8F2B-A28136CD9E63" Bitness="always64">
|
|
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
|
|
<RegistryValue Type="string" Name="License_rtf" Value="" KeyPath="yes" />
|
|
</RegistryKey>
|
|
<File Source="$(var.RepoDir)\installer\License.rtf" Id="License.rtf" />
|
|
</Component>
|
|
<Component Id="Notice_md" Guid="1671B5F5-1260-42CF-83A8-9B3430DFF8C5" Bitness="always64">
|
|
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
|
|
<RegistryValue Type="string" Name="Notice_md" Value="" KeyPath="yes" />
|
|
</RegistryKey>
|
|
<File Source="$(var.RepoDir)\Notice.md" Id="Notice.md" />
|
|
</Component>
|
|
</DirectoryRef>
|
|
|
|
<?if $(var.PerUser) = "true" ?>
|
|
<!-- DSC module files for PerUser handled in InstallDSCModule custom action. -->
|
|
<?else?>
|
|
<StandardDirectory Id="ProgramFiles64Folder">
|
|
<Directory Id="WindowsPowerShellFolder" Name="WindowsPowerShell">
|
|
<Directory Id="PowerShellModulesFolder" Name="Modules">
|
|
<Directory Id="PowerToysDscFolder" Name="Microsoft.PowerToys.Configure">
|
|
<Directory Id="PowerToysDscVerFolder" Name="$(var.Version).0">
|
|
<Component Id="PowerToysDSC" Guid="C52AECA0-DA73-49B8-BB49-31EF6640FF1F" Bitness="always64">
|
|
<!-- Don't fail installation because of DSC. Files are marked as not vital. -->
|
|
<File Vital="no" Source="$(var.RepoDir)\src\dsc\Microsoft.PowerToys.Configure\Generated\Microsoft.PowerToys.Configure\$(var.Version).0\Microsoft.PowerToys.Configure.psd1" Id="PTConf.psd1" />
|
|
<File Vital="no" Source="$(var.RepoDir)\src\dsc\Microsoft.PowerToys.Configure\Generated\Microsoft.PowerToys.Configure\$(var.Version).0\Microsoft.PowerToys.Configure.psm1" Id="PTConf.psm1" />
|
|
</Component>
|
|
</Directory>
|
|
</Directory>
|
|
</Directory>
|
|
</Directory>
|
|
</StandardDirectory>
|
|
<?endif?>
|
|
|
|
<DirectoryRef Id="ApplicationProgramsFolder">
|
|
<Component Id="PowerToysStartMenuShortcut">
|
|
<Shortcut Id="ApplicationStartMenuShortcut" Name="PowerToys (Preview)" Description="PowerToys - Windows system utilities to maximize productivity" Icon="powertoys.exe" IconIndex="0" Target="[!PowerToys.exe]" WorkingDirectory="INSTALLFOLDER">
|
|
<ShortcutProperty Key="System.AppUserModel.ID" Value="Microsoft.PowerToysWin32" />
|
|
</Shortcut>
|
|
<RemoveFolder Id="CleanUpStartMenuShortCut" Directory="ApplicationProgramsFolder" On="uninstall" />
|
|
<!-- ApplicationStartMenuShortcut is implicitly installed in HKCU, so WIX won't allow changing this reg value to HKLM. -->
|
|
<RegistryValue Root="HKCU" Key="Software\Microsoft\PowerToys" Name="installed" Type="integer" Value="1" KeyPath="yes" />
|
|
</Component>
|
|
</DirectoryRef>
|
|
|
|
<StandardDirectory Id="DesktopFolder">
|
|
<Component Id="DesktopShortcut" Condition="INSTALLDESKTOPSHORTCUT">
|
|
|
|
<!-- DesktopShortcutId is implicitly installed in HKCU, so WIX won't allow changing this reg value to HKLM. -->
|
|
<RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Name="desktopshorcutinstalled" Type="integer" Value="1" KeyPath="yes" />
|
|
<Shortcut Id="DesktopShortcutId" Name="PowerToys (Preview)" Description="PowerToys - Windows system utilities to maximize productivity" Target="[!PowerToys.exe]" WorkingDirectory="INSTALLFOLDER" Icon="powertoys.exe" Directory="DesktopFolder" />
|
|
</Component>
|
|
</StandardDirectory>
|
|
</Fragment>
|
|
<Fragment>
|
|
<ComponentGroup Id="CoreComponents">
|
|
<Component Id="RemoveCoreFolder" Guid="9330BD69-2D12-4D98-B0C7-66C99564D619" Directory="INSTALLFOLDER">
|
|
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
|
|
<RegistryValue Type="string" Name="RemoveCoreFolder" Value="" KeyPath="yes" />
|
|
</RegistryKey>
|
|
<RemoveFolder Id="RemoveBaseApplicationsAssetsFolder" Directory="BaseApplicationsAssetsFolder" On="uninstall" />
|
|
<RemoveFolder Id="RemoveWinUI3AppsInstallFolder" Directory="WinUI3AppsInstallFolder" On="uninstall" />
|
|
<RemoveFolder Id="RemoveWinUI3AppsAssetsFolder" Directory="WinUI3AppsAssetsFolder" On="uninstall" />
|
|
<RemoveFolder Id="RemoveINSTALLFOLDER" Directory="INSTALLFOLDER" On="uninstall" />
|
|
</Component>
|
|
<ComponentRef Id="powertoys_exe" />
|
|
<ComponentRef Id="PowerToysStartMenuShortcut" />
|
|
<ComponentRef Id="powertoys_per_machine_comp" />
|
|
<ComponentRef Id="powertoys_toast_clsid" />
|
|
<ComponentRef Id="License_rtf" />
|
|
<ComponentRef Id="Notice_md" />
|
|
<ComponentRef Id="DesktopShortcut" />
|
|
<?if $(var.PerUser) = "true" ?>
|
|
<ComponentRef Id="powertoys_env_path_user" />
|
|
<?else?>
|
|
<ComponentRef Id="powertoys_env_path_machine" />
|
|
<?endif?>
|
|
<?if $(var.PerUser) = "false" ?>
|
|
<ComponentRef Id="PowerToysDSC" />
|
|
<?endif?>
|
|
</ComponentGroup>
|
|
</Fragment>
|
|
</Wix>
|