mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-15 03:07:56 +01:00
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request Tasks checklist - [X] Implement DSC infra in PowerToys - [X] Implement Settings DSC resource - [X] Implement Get, Set, Test, Export, Schema - [X] Generate manifest (DSC resource JSON) - [X] Added Unit Tests - [x] Add `NJsonSchema` v11.4.0 to the stream - [x] Package the manifest files so dsc.exe can discover them - [x] Add `PowerToys.DSC.exe` to the PATH (maybe?) - [x] Add `InstallLocation` in the registry key so `winget configue export` can export the PowerToys DSC resources <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [X] Closes: #37276 - [X] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [X] **Tests:** Added/updated and all pass - [X] **Localization:** All end-user-facing strings can be localized - [x] **Dev docs:** Added/updated - [x] **New binaries:** Added on the required places - [x] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [x] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [x] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [x] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [x] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed --------- Co-authored-by: vanzue <vanzue@outlook.com> Co-authored-by: Kai Tao (from Dev Box) <kaitao@microsoft.com> Co-authored-by: Leilei Zhang <leilzh@microsoft.com>
541 lines
23 KiB
XML
541 lines
23 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
|
|
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" >
|
|
|
|
<?include $(sys.CURRENTDIR)\Common.wxi?>
|
|
|
|
<!-- WiX Components with multiple files cause issues due to the way Windows installs them.
|
|
Windows decides whether to install a component by checking the existence of KeyPath file and its version.
|
|
Thus, if some files were updated but KeyPath file was not, the component wouldn't be updated.
|
|
Some resource files, e.g. images, do not have version, so even if Component has only a single image and a static GUID, it won't be updated.
|
|
|
|
Considering all of the above, it's much simpler to just have one file per Component with an implicit Guid.
|
|
|
|
More info:
|
|
- https://stackoverflow.com/a/1604348/657390
|
|
- https://stackoverflow.com/a/1422121/657390
|
|
- https://robmensching.com/blog/posts/2003/10/18/component-rules-101/
|
|
- https://robmensching.com/blog/posts/2003/10/4/windows-installer-components-introduction/
|
|
-->
|
|
|
|
<Product Id="*"
|
|
Name="PowerToys (Preview)"
|
|
Language="1033"
|
|
Version="$(var.Version)"
|
|
Manufacturer="Microsoft Corporation"
|
|
UpgradeCode="$(var.UpgradeCodeGUID)">
|
|
|
|
|
|
<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="$(var.UpgradeCodeGUID)">
|
|
<UpgradeVersion
|
|
Minimum="0.0.0" Maximum="$(var.Version)"
|
|
Property="PREVIOUSVERSIONSINSTALLED"
|
|
IncludeMinimum="yes" IncludeMaximum="no" />
|
|
</Upgrade>
|
|
|
|
<MediaTemplate EmbedCab="yes" />
|
|
|
|
<Property Id="REINSTALLMODE" Value="amus" />
|
|
<Property Id="WINDOWSBUILDNUMBER" Secure="yes">
|
|
<RegistrySearch Id="BuildNumberSearch" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion" Name="CurrentBuildNumber" Type="raw" />
|
|
</Property>
|
|
<Condition Message="This application is only supported on Windows 10 version v2004 (build 19041) or higher.">
|
|
<![CDATA[(WINDOWSBUILDNUMBER >= 19041)]]>
|
|
</Condition>
|
|
|
|
<Icon Id="powertoys.exe" SourceFile="$(var.BinDir)svgs\icon.ico"/>
|
|
|
|
<Property Id="ARPPRODUCTICON" Value="powertoys.exe" />
|
|
|
|
<Feature Id="CoreFeature" Title="PowerToys" AllowAdvertise="no" Absent="disallow" TypicalDefault="install"
|
|
Description="Contains all PowerToys features.">
|
|
<ComponentGroupRef Id="CoreComponents" />
|
|
<ComponentGroupRef Id="BaseApplicationsComponentGroup" />
|
|
<ComponentGroupRef Id="WinUI3ApplicationsComponentGroup" />
|
|
<ComponentGroupRef Id="AwakeComponentGroup" />
|
|
<ComponentGroupRef Id="ColorPickerComponentGroup" />
|
|
<ComponentGroupRef Id="FileExplorerPreviewComponentGroup" />
|
|
<ComponentGroupRef Id="FileLocksmithComponentGroup" />
|
|
<ComponentGroupRef Id="HostsComponentGroup" />
|
|
<ComponentGroupRef Id="ImageResizerComponentGroup" />
|
|
<ComponentGroupRef Id="KeyboardManagerComponentGroup" />
|
|
<ComponentGroupRef Id="PeekComponentGroup" />
|
|
<ComponentGroupRef Id="PowerRenameComponentGroup" />
|
|
<ComponentGroupRef Id="RegistryPreviewComponentGroup" />
|
|
<ComponentGroupRef Id="RunComponentGroup" />
|
|
<ComponentGroupRef Id="SettingsComponentGroup" />
|
|
<ComponentGroupRef Id="ShortcutGuideComponentGroup" />
|
|
<ComponentGroupRef Id="MouseWithoutBordersComponentGroup" />
|
|
<ComponentGroupRef Id="EnvironmentVariablesComponentGroup" />
|
|
<ComponentGroupRef Id="AdvancedPasteComponentGroup" />
|
|
<ComponentGroupRef Id="NewPlusComponentGroup" />
|
|
<ComponentGroupRef Id="NewPlusTemplatesComponentGroup" />
|
|
<ComponentGroupRef Id="ResourcesComponentGroup" />
|
|
<ComponentGroupRef Id="DscResourcesComponentGroup" />
|
|
<ComponentGroupRef Id="WindowsAppSDKComponentGroup" />
|
|
<ComponentGroupRef Id="ToolComponentGroup" />
|
|
<ComponentGroupRef Id="MonacoSRCHeatGenerated" />
|
|
<ComponentGroupRef Id="WorkspacesComponentGroup" />
|
|
<ComponentGroupRef Id="CmdPalComponentGroup" />
|
|
</Feature>
|
|
|
|
<SetProperty Id="ARPINSTALLLOCATION" Value="[INSTALLFOLDER]" After="CostFinalize" />
|
|
|
|
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
|
|
|
|
<UI>
|
|
<UIRef Id="WixUI_InstallDir"/>
|
|
<Publish Dialog="WelcomeDlg"
|
|
Control="Next"
|
|
Event="NewDialog"
|
|
Value="InstallDirDlg"
|
|
Order="99">1</Publish>
|
|
<Publish Dialog="InstallDirDlg"
|
|
Control="Back"
|
|
Event="NewDialog"
|
|
Value="WelcomeDlg"
|
|
Order="99">1</Publish>
|
|
|
|
<Publish Dialog="ExitDialog"
|
|
Control="Finish"
|
|
Event="EndDialog"
|
|
Value="Return">NOT Installed</Publish>
|
|
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Property="_REMOVE_ALL" Value="Yes">1</Publish>
|
|
<Publish Dialog="UserExit" Control="Finish" Event="DoAction" Value="TelemetryLogInstallCancel">NOT Installed</Publish>
|
|
<Publish Dialog="FatalError" Control="Finish" Event="DoAction" Value="TelemetryLogInstallFail">NOT Installed</Publish>
|
|
<Publish Dialog="UserExit" Control="Finish" Event="DoAction" Value="TelemetryLogUninstallCancel">Installed AND _REMOVE_ALL="Yes"</Publish>
|
|
<Publish Dialog="FatalError" Control="Finish" Event="DoAction" Value="TelemetryLogUninstallFail">Installed AND _REMOVE_ALL="Yes"</Publish>
|
|
<Publish Dialog="UserExit" Control="Finish" Event="DoAction" Value="TelemetryLogRepairCancel">Installed AND NOT (_REMOVE_ALL="Yes")</Publish>
|
|
<Publish Dialog="FatalError" Control="Finish" Event="DoAction" Value="TelemetryLogRepairFail">Installed AND NOT (_REMOVE_ALL="Yes")</Publish>
|
|
</UI>
|
|
|
|
<WixVariable Id="WixUIBannerBmp" Value="$(var.ProjectDir)\Images\banner.png" />
|
|
<WixVariable Id="WixUIDialogBmp" Value="$(var.ProjectDir)\Images\dialog.png" />
|
|
<WixVariable Id="WixUILicenseRtf" Value="$(var.RepoDir)\installer\License.rtf" />
|
|
<Property Id="INSTALLSTARTMENUSHORTCUT" Value="1"/>
|
|
<Property Id="WixShellExecTarget" Value="[#PowerToys_ActionRunner.exe]" />
|
|
|
|
<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-->
|
|
<SetProperty Action="SetINSTALLFOLDERTOPREVIOUSINSTALLFOLDER" Id="INSTALLFOLDER" Value="[PREVIOUSINSTALLFOLDER]" After="DetectPrevInstallPath" Sequence="execute">
|
|
<![CDATA[BOOTSTRAPPERINSTALLFOLDER = DEFAULTBOOTSTRAPPERINSTALLFOLDER AND PREVIOUSINSTALLFOLDER <> ""]]>
|
|
</SetProperty>
|
|
<SetProperty Action="SetINSTALLFOLDERTOBOOTSTRAPPERINSTALLFOLDER" Id="INSTALLFOLDER" Value="[BOOTSTRAPPERINSTALLFOLDER]" After="DetectPrevInstallPath" Sequence="execute">
|
|
<![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="SetLaunchPowerToysParam" Before="LaunchPowerToys" />
|
|
<Custom Action="SetInstallCmdPalPackageParam" Before="InstallCmdPalPackage" />
|
|
<Custom Action="SetUninstallCommandNotFoundParam" Before="UninstallCommandNotFound" />
|
|
<Custom Action="SetUpgradeCommandNotFoundParam" Before="UpgradeCommandNotFound" />
|
|
<Custom Action="SetApplyModulesRegistryChangeSetsParam" Before="ApplyModulesRegistryChangeSets" />
|
|
|
|
<?if $(var.PerUser) = "true" ?>
|
|
<Custom Action="SetInstallDSCModuleParam" Before="InstallDSCModule" />
|
|
<?endif?>
|
|
|
|
<Custom Action="SetUnApplyModulesRegistryChangeSetsParam" Before="UnApplyModulesRegistryChangeSets" />
|
|
<Custom Action="CheckGPO" After="InstallInitialize">
|
|
NOT Installed
|
|
</Custom>
|
|
<Custom Action="ApplyModulesRegistryChangeSets" After="InstallFiles">
|
|
NOT Installed
|
|
</Custom>
|
|
<Custom Action="InstallCmdPalPackage" After="InstallFiles">
|
|
NOT Installed
|
|
</Custom>
|
|
<Custom Action="WixCloseApplications" Before="RemoveFiles" />
|
|
<Custom Action="RemovePowerToysSchTasks" After="RemoveFiles" />
|
|
<!-- TODO: Use to activate embedded MSIX -->
|
|
<!--<Custom Action="InstallEmbeddedMSIXTask" After="InstallFinalize">
|
|
NOT Installed
|
|
</Custom>-->
|
|
<?if $(var.PerUser) = "true" ?>
|
|
<Custom Action="InstallDSCModule" After="InstallFiles"/>
|
|
<?endif?>
|
|
<Custom Action="TelemetryLogInstallSuccess" After="InstallFinalize">
|
|
NOT Installed
|
|
</Custom>
|
|
<Custom Action="TelemetryLogUninstallSuccess" After="InstallFinalize">
|
|
Installed and (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")
|
|
</Custom>
|
|
<Custom Action="UnApplyModulesRegistryChangeSets" Before="RemoveFiles">
|
|
Installed AND (REMOVE="ALL")
|
|
</Custom>
|
|
<Custom Action="UnRegisterContextMenuPackages" Before="RemoveFiles">
|
|
Installed AND (REMOVE="ALL")
|
|
</Custom>
|
|
<Custom Action="CleanImageResizerRuntimeRegistry" Before="RemoveFiles">
|
|
Installed AND (REMOVE="ALL")
|
|
</Custom>
|
|
<Custom Action="CleanFileLocksmithRuntimeRegistry" Before="RemoveFiles">
|
|
Installed AND (REMOVE="ALL")
|
|
</Custom>
|
|
<Custom Action="CleanPowerRenameRuntimeRegistry" Before="RemoveFiles">
|
|
Installed AND (REMOVE="ALL")
|
|
</Custom>
|
|
<Custom Action="CleanNewPlusRuntimeRegistry" Before="RemoveFiles">
|
|
Installed AND (REMOVE="ALL")
|
|
</Custom>
|
|
<Custom Action="UnRegisterCmdPalPackage" Before="RemoveFiles">
|
|
Installed AND (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")
|
|
</Custom>
|
|
<Custom Action="UnsetAdvancedPasteAPIKey" Before="RemoveFiles">
|
|
Installed AND (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")
|
|
</Custom>
|
|
<Custom Action="UninstallCommandNotFound" Before="RemoveFiles">
|
|
Installed AND (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")
|
|
</Custom>
|
|
<Custom Action="UpgradeCommandNotFound" After="InstallFiles">
|
|
WIX_UPGRADE_DETECTED
|
|
</Custom>
|
|
<Custom Action="UninstallServicesTask" After="InstallFinalize">
|
|
Installed AND (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")
|
|
</Custom>
|
|
<!-- TODO: Use to activate embedded MSIX -->
|
|
<!--<Custom Action="UninstallEmbeddedMSIXTask" After="InstallFinalize">
|
|
Installed AND (REMOVE="ALL")
|
|
</Custom>-->
|
|
<?if $(var.PerUser) = "true" ?>
|
|
<Custom Action="UninstallDSCModule" After="InstallFinalize">
|
|
Installed AND (REMOVE="ALL")
|
|
</Custom>
|
|
<?endif?>
|
|
<Custom Action="TerminateProcesses" Before="InstallValidate" />
|
|
<Custom Action="LaunchPowerToys" Before="InstallFinalize">NOT Installed</Custom>
|
|
|
|
<!-- Clean Video Conference Mute registry keys that might be around from previous installations. We've deprecated this utility since then. -->
|
|
<Custom Action="CleanVideoConferenceRegistry" Before="InstallFinalize">NOT Installed</Custom>
|
|
|
|
</InstallExecuteSequence>
|
|
|
|
<CustomAction Id="SetLaunchPowerToysParam"
|
|
Property="LaunchPowerToys"
|
|
Value="[INSTALLFOLDER]" />
|
|
|
|
<CustomAction Id="SetInstallCmdPalPackageParam"
|
|
Property="InstallCmdPalPackage"
|
|
Value="[INSTALLFOLDER]" />
|
|
|
|
<CustomAction
|
|
Id="LaunchPowerToys"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="LaunchPowerToysCA"
|
|
/>
|
|
|
|
<CustomAction
|
|
Id="TerminateProcesses"
|
|
Return="ignore"
|
|
Execute="immediate"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="TerminateProcessesCA" />
|
|
|
|
<CustomAction Id="SetApplyModulesRegistryChangeSetsParam"
|
|
Property="ApplyModulesRegistryChangeSets"
|
|
Value="[INSTALLFOLDER]" />
|
|
|
|
<CustomAction Id="SetUnApplyModulesRegistryChangeSetsParam"
|
|
Property="UnApplyModulesRegistryChangeSets"
|
|
Value="[INSTALLFOLDER]" />
|
|
|
|
<CustomAction Id="SetInstallDSCModuleParam"
|
|
Property="InstallDSCModule"
|
|
Value="[INSTALLFOLDER]" />
|
|
|
|
<CustomAction Id="SetUninstallCommandNotFoundParam"
|
|
Property="UninstallCommandNotFound"
|
|
Value="[INSTALLFOLDER]" />
|
|
|
|
<CustomAction Id="SetUpgradeCommandNotFoundParam"
|
|
Property="UpgradeCommandNotFound"
|
|
Value="[INSTALLFOLDER]" />
|
|
|
|
<CustomAction Id="SetCreateWinAppSDKHardlinksParam"
|
|
Property="CreateWinAppSDKHardlinks"
|
|
Value="[INSTALLFOLDER]" />
|
|
|
|
<CustomAction Id="SetDeleteWinAppSDKHardlinksParam"
|
|
Property="DeleteWinAppSDKHardlinks"
|
|
Value="[INSTALLFOLDER]" />
|
|
|
|
<CustomAction Id="SetCreatePTInteropHardlinksParam"
|
|
Property="CreatePTInteropHardlinks"
|
|
Value="[INSTALLFOLDER]" />
|
|
|
|
<CustomAction Id="SetDeletePTInteropHardlinksParam"
|
|
Property="DeletePTInteropHardlinks"
|
|
Value="[INSTALLFOLDER]" />
|
|
|
|
<CustomAction Id="SetCreateDotnetRuntimeHardlinksParam"
|
|
Property="CreateDotnetRuntimeHardlinks"
|
|
Value="[INSTALLFOLDER]" />
|
|
|
|
<CustomAction Id="SetDeleteDotnetRuntimeHardlinksParam"
|
|
Property="DeleteDotnetRuntimeHardlinks"
|
|
Value="[INSTALLFOLDER]" />
|
|
|
|
<CustomAction Id="RemovePowerToysSchTasks"
|
|
Return="ignore"
|
|
Impersonate="no"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="RemoveScheduledTasksCA"
|
|
/>
|
|
|
|
<CustomAction Id="InstallEmbeddedMSIXTask"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="InstallEmbeddedMSIXCA"
|
|
/>
|
|
|
|
<CustomAction Id="UninstallEmbeddedMSIXTask"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="UninstallEmbeddedMSIXCA"
|
|
/>
|
|
|
|
<CustomAction Id="InstallDSCModule"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="InstallDSCModuleCA"
|
|
/>
|
|
|
|
<CustomAction Id="UninstallDSCModule"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="UninstallDSCModuleCA"
|
|
/>
|
|
<CustomAction Id="UninstallServicesTask"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="UninstallServicesCA"
|
|
/>
|
|
|
|
<CustomAction Id="UninstallCommandNotFound"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="UninstallCommandNotFoundModuleCA"
|
|
/>
|
|
|
|
<CustomAction Id="UpgradeCommandNotFound"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="UpgradeCommandNotFoundModuleCA"
|
|
/>
|
|
|
|
<CustomAction Id="UnsetAdvancedPasteAPIKey"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="UnsetAdvancedPasteAPIKeyCA"
|
|
/>
|
|
|
|
<CustomAction Id="TelemetryLogInstallSuccess"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="TelemetryLogInstallSuccessCA"
|
|
/>
|
|
|
|
<CustomAction Id="TelemetryLogInstallCancel"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="TelemetryLogInstallCancelCA"
|
|
/>
|
|
|
|
<CustomAction Id="TelemetryLogInstallFail"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="TelemetryLogInstallFailCA"
|
|
/>
|
|
|
|
<CustomAction Id="TelemetryLogUninstallSuccess"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="TelemetryLogUninstallSuccessCA"
|
|
/>
|
|
|
|
<CustomAction Id="TelemetryLogUninstallCancel"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="TelemetryLogUninstallCancelCA"
|
|
/>
|
|
|
|
<CustomAction Id="TelemetryLogUninstallFail"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="TelemetryLogUninstallFailCA"
|
|
/>
|
|
|
|
<CustomAction Id="TelemetryLogRepairCancel"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="TelemetryLogRepairCancelCA"
|
|
/>
|
|
|
|
<CustomAction Id="TelemetryLogRepairFail"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="TelemetryLogRepairFailCA"
|
|
/>
|
|
|
|
<CustomAction Id="DetectPrevInstallPath"
|
|
Return="check"
|
|
Impersonate="yes"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="DetectPrevInstallPathCA"
|
|
/>
|
|
|
|
<CustomAction Id="CleanVideoConferenceRegistry"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="CleanVideoConferenceRegistryCA"
|
|
/>
|
|
|
|
<CustomAction Id="ApplyModulesRegistryChangeSets"
|
|
Return="check"
|
|
Impersonate="yes"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="ApplyModulesRegistryChangeSetsCA"
|
|
/>
|
|
|
|
<CustomAction Id="UnApplyModulesRegistryChangeSets"
|
|
Return="check"
|
|
Impersonate="yes"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="UnApplyModulesRegistryChangeSetsCA"
|
|
/>
|
|
|
|
<CustomAction Id="UnRegisterContextMenuPackages"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="UnRegisterContextMenuPackagesCA"
|
|
/>
|
|
|
|
<CustomAction Id="CleanImageResizerRuntimeRegistry"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="CleanImageResizerRuntimeRegistryCA"
|
|
/>
|
|
<CustomAction Id="CleanFileLocksmithRuntimeRegistry"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="CleanFileLocksmithRuntimeRegistryCA"
|
|
/>
|
|
<CustomAction Id="CleanPowerRenameRuntimeRegistry"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="CleanPowerRenameRuntimeRegistryCA"
|
|
/>
|
|
<CustomAction Id="CleanNewPlusRuntimeRegistry"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="CleanNewPlusRuntimeRegistryCA"
|
|
/>
|
|
|
|
<CustomAction Id="UnRegisterCmdPalPackage"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="UnRegisterCmdPalPackageCA"
|
|
/>
|
|
|
|
<CustomAction Id="CheckGPO"
|
|
Return="check"
|
|
Impersonate="yes"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="CheckGPOCA"
|
|
/>
|
|
|
|
<CustomAction Id="InstallCmdPalPackage"
|
|
Return="ignore"
|
|
Impersonate="yes"
|
|
Execute="deferred"
|
|
BinaryKey="PTCustomActions"
|
|
DllEntry="InstallCmdPalPackageCA"
|
|
/>
|
|
|
|
<!-- Close 'PowerToys.exe' before uninstall-->
|
|
<Property Id="MSIRESTARTMANAGERCONTROL" Value="DisableShutdown" />
|
|
<Property Id="MSIFASTINSTALL" Value="DisableShutdown" />
|
|
<util:CloseApplication CloseMessage="yes" Target="PowerToys.exe" ElevatedCloseMessage="yes" RebootPrompt="no" TerminateProcess="0" />
|
|
</Product>
|
|
|
|
<Fragment>
|
|
<Binary Id="PTCustomActions" SourceFile="$(var.PowerToysSetupCustomActions.TargetPath)" />
|
|
</Fragment>
|
|
|
|
<!-- Installation directory structure -->
|
|
<Fragment>
|
|
<Directory Id="TARGETDIR" Name="SourceDir">
|
|
<Directory Id="$(var.DefaultInstallDir)">
|
|
<Directory Id="INSTALLFOLDER" Name="PowerToys">
|
|
<Directory Id="BaseApplicationsAssetsFolder" Name="Assets">
|
|
</Directory>
|
|
<Directory Id="DSCModulesReferenceFolder" Name="DSCModules" />
|
|
<Directory Id="WinUI3AppsInstallFolder" Name="WinUI3Apps">
|
|
<Directory Id="WinUI3AppsMicrosoftUIXamlInstallFolder" Name="Microsoft.UI.Xaml">
|
|
<Directory Id="WinUI3AppsMicrosoftUIXamlAssetsInstallFolder" Name="Assets" />
|
|
</Directory>
|
|
<Directory Id="WinUI3AppsAssetsFolder" Name="Assets">
|
|
</Directory>
|
|
</Directory>
|
|
<Directory Id="ToolsFolder" Name="Tools"/>
|
|
</Directory>
|
|
</Directory>
|
|
<Directory Id="ProgramMenuFolder">
|
|
<Directory Id="ApplicationProgramsFolder" Name="PowerToys (Preview)"/>
|
|
</Directory>
|
|
<Directory Id="DesktopFolder" Name="Desktop" />
|
|
</Directory>
|
|
</Fragment>
|
|
</Wix>
|