Compare commits

...

36 Commits

Author SHA1 Message Date
Peiyao Zhao (from Dev Box)
462f758200 test 2025-05-15 14:58:33 +08:00
Peiyao Zhao (from Dev Box)
4c68d3872c fix 2025-05-13 14:15:50 +08:00
Peiyao Zhao (from Dev Box)
8d1b38b8bf update cmdpal 2025-05-13 14:03:55 +08:00
Peiyao Zhao (from Dev Box)
9f33d15bf9 Merge branch 'main' into peiyao/wix5-code-migration 2025-05-13 11:15:51 +08:00
Peiyao Zhao (from Dev Box)
f1b44001d8 merge main 2025-05-12 15:59:38 +08:00
Peiyao Zhao (from Dev Box)
16183b7250 update 2025-05-12 15:46:27 +08:00
Peiyao Zhao (from Dev Box)
603febd2ed update 2025-04-15 12:33:45 +08:00
Peiyao Zhao (from Dev Box)
72f9ac2f5d update 2025-04-07 21:19:55 +08:00
Peiyao Zhao (from Dev Box)
b4bc666f57 rebase 2025-04-07 15:33:20 +08:00
Peiyao Zhao (from Dev Box)
8c3d297938 test 2025-04-07 15:26:51 +08:00
Peiyao Zhao (from Dev Box)
79005654ed update 2025-04-07 15:26:48 +08:00
Peiyao Zhao (from Dev Box)
0dcf951870 init auto-migration 2025-04-07 15:23:27 +08:00
Peiyao Zhao (from Dev Box)
476e8c117a test 2025-04-02 15:08:08 +08:00
Peiyao Zhao (from Dev Box)
ab2bfed300 revert 2025-04-01 17:15:55 +08:00
Peiyao Zhao (from Dev Box)
b0893c345f update 2025-04-01 16:55:32 +08:00
Peiyao Zhao (from Dev Box)
81c8797f0b init auto-migration 2025-04-01 14:51:17 +08:00
Peiyao Zhao (from Dev Box)
85d1d97438 update wix5 change 2025-03-31 14:54:46 +08:00
Peiyao Zhao (from Dev Box)
230ae71f41 revert update folder path to vnext, since this path is bound to wix tool 2025-03-21 16:26:33 +08:00
Peiyao Zhao (from Dev Box)
23475f4fcf fix 2025-03-20 14:24:51 +08:00
Peiyao Zhao (from Dev Box)
c65ad1083e update folder path to vnext 2025-03-20 13:35:19 +08:00
Peiyao Zhao (from Dev Box)
c7fbbb57d2 merge main 2025-03-20 12:25:31 +08:00
Peiyao Zhao (from Dev Box)
4e0f1bdc86 Merge branch 'main' into peiyaozhao/init-migration-project 2025-03-19 16:32:50 +08:00
Peiyao Zhao (from Dev Box)
f193ba30b1 fix pipeline errors 2025-03-19 15:09:25 +08:00
Peiyao Zhao (from Dev Box)
b47a07395c fix pipelien build error 2025-03-12 15:34:13 +08:00
Peiyao Zhao (from Dev Box)
7e8a461b89 Merge remote-tracking branch 'origin/main' into peiyaozhao/init-migration-project 2025-03-12 14:49:48 +08:00
Peiyao Zhao (from Dev Box)
29c3523b0f fix spell-check 2025-03-11 23:36:30 +08:00
Peiyao Zhao (from Dev Box)
8f62088903 fix pipeline build error 2025-03-11 23:14:52 +08:00
Peiyao Zhao (from Dev Box)
839f4fbcf2 update pipeline 2025-03-11 18:24:37 +08:00
Peiyao Zhao (from Dev Box)
a21d4af25f test 2025-03-03 22:59:07 +08:00
Peiyao Zhao (from Dev Box)
5cd93293e6 fix build error 2025-03-03 22:32:45 +08:00
Peiyao Zhao (from Dev Box)
4966968e9e update 2025-02-28 09:48:49 +08:00
Peiyao Zhao (from Dev Box)
694d23fd8c update 2025-02-27 01:10:58 +08:00
Peiyao Zhao (from Dev Box)
37dee4e9e1 update 2025-02-25 14:37:20 +08:00
Peiyao Zhao (from Dev Box)
9c931951de update expect.txt 2025-02-25 14:01:59 +08:00
Peiyao Zhao (from Dev Box)
3ccf99324c add .gitignore 2025-02-25 11:27:57 +08:00
Jerry Xu
b9534c126d fix conflict 2025-02-25 10:44:45 +08:00
88 changed files with 5710 additions and 62 deletions

View File

@@ -53,6 +53,8 @@ YVU
YVYU
zipfolder
CODEOWNERS
VNext
vnext
# FONTS

4
.gitignore vendored
View File

@@ -350,6 +350,10 @@ src/common/Telemetry/*.etl
# Generated installer file for Monaco source files.
/installer/PowerToysSetup/MonacoSRC.wxs
/installer/PowerToysSetupVNext/MonacoSRC.wxs
# MSBuildCache
/MSBuildCacheLogs/
# PowerToysInstaller Build Temp Files
installer/*/*.wxs.bk

View File

@@ -6,7 +6,10 @@
"MatchedPath": [
"PowerToysSetupCustomActions.dll",
"PowerToys*Setup-*.exe",
"PowerToys*Setup-*.msi"
"PowerToys*Setup-*.msi",
"PowerToys*Setup-*.msi",
"PowerToys*SetupVNext-*.exe",
"PowerToys*SetupVNext-*.msi"
],
"SigningInfo": {
"Operations": [

View File

@@ -0,0 +1,26 @@
$ProgressPreference = 'SilentlyContinue'
$WixDownloadUrl = "https://github.com/wixtoolset/wix3/releases/download/wix3141rtm/wix314.exe"
$WixBinariesDownloadUrl = "https://github.com/wixtoolset/wix3/releases/download/wix3141rtm/wix314-binaries.zip"
# Download WiX binaries and verify their hash sums
Invoke-WebRequest -Uri $WixDownloadUrl -OutFile "$($ENV:Temp)\wix314.exe"
$Hash = (Get-FileHash -Algorithm SHA256 "$($ENV:Temp)\wix314.exe").Hash
if ($Hash -ne '6BF6D03D6923D9EF827AE1D943B90B42B8EBB1B0F68EF6D55F868FA34C738A29')
{
Write-Error "$WixHash"
throw "wix314.exe has unexpected SHA256 hash: $Hash"
}
Invoke-WebRequest -Uri $WixBinariesDownloadUrl -OutFile "$($ENV:Temp)\wix314-binaries.zip"
$Hash = (Get-FileHash -Algorithm SHA256 "$($ENV:Temp)\wix314-binaries.zip").Hash
if($Hash -ne '6AC824E1642D6F7277D0ED7EA09411A508F6116BA6FAE0AA5F2C7DAA2FF43D31')
{
throw "wix314-binaries.zip has unexpected SHA256 hash: $Hash"
}
# Install WiX
Start-Process -Wait -FilePath "$($ENV:Temp)\wix314.exe" -ArgumentList "/install /quiet"
# Extract WiX binaries and copy wix.targets to the installed dir
Expand-Archive -Path "$($ENV:Temp)\wix314-binaries.zip" -Force -DestinationPath "$($ENV:Temp)"
Copy-Item -Path "$($ENV:Temp)\wix.targets" -Destination "C:\Program Files (x86)\WiX Toolset v3.14\"

View File

@@ -219,6 +219,10 @@ jobs:
& "$(build.sourcesdirectory)\.pipelines\installWiX.ps1"
displayName: Download and install WiX 3.14 development build
- pwsh: |-
& "$(build.sourcesdirectory)\.pipelines\installWiXVNext.ps1"
displayName: Download and install WiX 4/5 development build
- ${{ parameters.beforeBuildSteps }}
- task: VSBuild@1
@@ -457,6 +461,21 @@ jobs:
additionalBuildOptions: ${{ parameters.additionalBuildOptions }}
buildUserInstaller: true # NOTE: This is the distinction between the above and below rules
- template: steps-build-installer-vnext.yml
parameters:
codeSign: ${{ parameters.codeSign }}
signingIdentity: ${{ parameters.signingIdentity }}
versionNumber: ${{ parameters.versionNumber }}
additionalBuildOptions: ${{ parameters.additionalBuildOptions }}
- template: steps-build-installer-vnext.yml
parameters:
codeSign: ${{ parameters.codeSign }}
signingIdentity: ${{ parameters.signingIdentity }}
versionNumber: ${{ parameters.versionNumber }}
additionalBuildOptions: ${{ parameters.additionalBuildOptions }}
buildUserInstaller: true # NOTE: This is the distinction between the above and below rules
# This saves ~1GiB per architecture. We won't need these later.
# Removes:
# - All .pdbs from any static libs .libs (which were only used during linking)
@@ -479,6 +498,13 @@ jobs:
flattenFolders: True
targetFolder: $(JobOutputDirectory)
- task: CopyFiles@2
displayName: Stage Installers
inputs:
contents: "**/PowerToys*SetupVNext-*.exe"
flattenFolders: True
targetFolder: $(JobOutputDirectory)
- task: CopyFiles@2
displayName: Stage Symbols
inputs:
@@ -512,6 +538,28 @@ jobs:
$machineHash | out-file -filepath $combinedMachinePath
displayName: Calculate file hashes
# Output config for installer vnext
- pwsh: |-
$p = "$(JobOutputDirectory)\"
$userHash = ((Get-Item $p\PowerToysUserSetupVNext*.exe | Get-FileHash).Hash);
$machineHash = ((Get-Item $p\PowerToysSetupVNext*.exe | Get-FileHash).Hash);
$userPlat = "hash_user_$(BuildPlatform).txt";
$machinePlat = "hash_machine_$(BuildPlatform).txt";
$combinedUserPath = $p + $userPlat;
$combinedMachinePath = $p + $machinePlat;
echo $p
echo $userPlat
echo $userHash
echo $combinedUserPath
echo $machinePlat
echo $machineHash
echo $combinedMachinePath
$userHash | out-file -filepath $combinedUserPath
$machineHash | out-file -filepath $combinedMachinePath
displayName: Calculate file hashes
# Publishing the GPO files
- pwsh: |-
New-Item "$(JobOutputDirectory)/gpo" -Type Directory

View File

@@ -0,0 +1,184 @@
parameters:
- name: versionNumber
type: string
default: "0.0.1"
- name: buildUserInstaller
type: boolean
default: false
- name: codeSign
type: boolean
default: false
- name: signingIdentity
type: object
default: {}
- name: additionalBuildOptions
type: string
default: ''
steps:
- pwsh: |-
& git clean -xfd -e *exe -- .\installer\
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Clean installer to reduce cross-contamination
- pwsh: |-
$IsPerUser = $${{ parameters.buildUserInstaller }}
$InstallerBuildSlug = "MachineSetup"
$InstallerBasename = "PowerToysSetupVNext"
If($IsPerUser) {
$InstallerBuildSlug = "UserSetup"
$InstallerBasename = "PowerToysUserSetupVNext"
}
$InstallerBasename += "-${{ parameters.versionNumber }}-$(BuildPlatform)"
Write-Host "##vso[task.setvariable variable=InstallerBuildSlug]$InstallerBuildSlug"
Write-Host "##vso[task.setvariable variable=InstallerRelativePath]$(BuildPlatform)\$(BuildConfiguration)\$InstallerBuildSlug"
Write-Host "##vso[task.setvariable variable=InstallerBasename]$InstallerBasename"
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Prepare Installer variables
# This dll needs to be built and signed before building the MSI.
- task: VSBuild@1
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Build PowerToysSetupCustomActions
inputs:
solution: "**/installer/PowerToysSetup.sln"
vsVersion: 17.0
msbuildArgs: >-
/t:PowerToysSetupCustomActions
/p:RunBuildEvents=true;PerUser=${{parameters.buildUserInstaller}};RestorePackagesConfig=true;CIBuild=true
-restore -graph
/bl:$(LogOutputDirectory)\installer-$(InstallerBuildSlug)-actions.binlog
${{ parameters.additionalBuildOptions }}
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
clean: true
msbuildArchitecture: x64
maximumCpuCount: true
- ${{ if eq(parameters.codeSign, true) }}:
- template: steps-esrp-signing.yml
parameters:
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Sign PowerToysSetupCustomActions
signingIdentity: ${{ parameters.signingIdentity }}
inputs:
FolderPath: 'installer/PowerToysSetupCustomActions/$(InstallerRelativePath)'
signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
## INSTALLER START
#### MSI BUILDING AND SIGNING
- task: VSBuild@1
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Build VNext MSI
inputs:
solution: "**/installer/PowerToysSetup.sln"
vsVersion: 17.0
msbuildArgs: >-
-restore
/t:PowerToysInstallerVNext
/p:RunBuildEvents=false;PerUser=${{parameters.buildUserInstaller}};BuildProjectReferences=false;CIBuild=true
/bl:$(LogOutputDirectory)\installer-$(InstallerBuildSlug)-msi.binlog
${{ parameters.additionalBuildOptions }}
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
clean: false # don't undo our hard work above by deleting the CustomActions dll
msbuildArchitecture: x64
maximumCpuCount: true
- script: |-
"C:\Program Files (x86)\WiX Toolset v3.14\bin\dark.exe" -x $(build.sourcesdirectory)\extractedMsi installer\PowerToysSetupVNext\$(InstallerRelativePath)\$(InstallerBasename).msi
dir $(build.sourcesdirectory)\extractedMsi
displayName: "${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Extract and verify MSI"
# Check if deps.json files don't reference different dll versions.
- pwsh: |-
& '.pipelines/verifyDepsJsonLibraryVersions.ps1' -targetDir '$(build.sourcesdirectory)\extractedMsi\File'
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Audit deps.json in MSI extracted files
- ${{ if eq(parameters.codeSign, true) }}:
- pwsh: |-
& .pipelines/versionAndSignCheck.ps1 -targetDir '$(build.sourcesdirectory)\extractedMsi\File'
& .pipelines/versionAndSignCheck.ps1 -targetDir '$(build.sourcesdirectory)\extractedMsi\Binary'
git clean -xfd ./extractedMsi
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Verify all binaries are signed and versioned
- template: steps-esrp-signing.yml
parameters:
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Sign VNext MSI
signingIdentity: ${{ parameters.signingIdentity }}
inputs:
FolderPath: 'installer/PowerToysSetupVNext/$(InstallerRelativePath)'
signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
#### END MSI
#### BOOTSTRAP BUILDING AND SIGNING
- task: VSBuild@1
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Build VNext Bootstrapper
inputs:
solution: "**/installer/PowerToysSetup.sln"
vsVersion: 17.0
msbuildArgs: >-
/t:PowerToysBootstrapperVNext
/p:PerUser=${{parameters.buildUserInstaller}};CIBuild=true
/bl:$(LogOutputDirectory)\installer-$(InstallerBuildSlug)-bootstrapper.binlog
-restore -graph
${{ parameters.additionalBuildOptions }}
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
clean: false # don't undo our hard work above by deleting the MSI
msbuildArchitecture: x64
maximumCpuCount: true
# The entirety of bundle unpacking/re-packing is unnecessary if we are not code signing it.
- ${{ if eq(parameters.codeSign, true) }}:
- script: |-
"C:\Program Files (x86)\WiX Toolset v3.14\bin\insignia.exe" -ib installer\PowerToysSetupVNext\$(InstallerRelativePath)\$(InstallerBasename).exe -o installer\engine.exe
displayName: "${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Insignia: Extract Engine from Bundle"
- template: steps-esrp-signing.yml
parameters:
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Sign WiX Engine
signingIdentity: ${{ parameters.signingIdentity }}
inputs:
FolderPath: "installer"
Pattern: engine.exe
signConfigType: inlineSignParams
inlineOperation: |
[
{
"KeyCode": "CP-230012",
"OperationCode": "SigntoolSign",
"Parameters": {
"OpusName": "Microsoft",
"OpusInfo": "http://www.microsoft.com",
"FileDigest": "/fd \"SHA256\"",
"PageHash": "/NPH",
"TimeStamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
},
"ToolName": "sign",
"ToolVersion": "1.0"
},
{
"KeyCode": "CP-230012",
"OperationCode": "SigntoolVerify",
"Parameters": {},
"ToolName": "sign",
"ToolVersion": "1.0"
}
]
- script: |-
"C:\Program Files (x86)\WiX Toolset v3.14\bin\insignia.exe" -ab installer\engine.exe installer\PowerToysSetupVNext\$(InstallerRelativePath)\$(InstallerBasename).exe -o installer\PowerToysSetupVNext\$(InstallerRelativePath)\$(InstallerBasename).exe
displayName: "${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Insignia: Merge Engine into Bundle"
- template: steps-esrp-signing.yml
parameters:
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Sign Final Bootstrapper
signingIdentity: ${{ parameters.signingIdentity }}
inputs:
FolderPath: 'installer/PowerToysSetupVNext/$(InstallerRelativePath)'
signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
#### END BOOTSTRAP
## END INSTALLER

View File

@@ -101,6 +101,12 @@
<PackageVersion Include="WinUIEx" Version="2.2.0" />
<PackageVersion Include="WPF-UI" Version="3.0.5" />
<PackageVersion Include="WyHash" Version="1.0.5" />
<PackageVersion Include="WixToolset.Heat" Version="5.0.2" />
<PackageVersion Include="WixToolset.Firewall.wixext" Version="5.0.2" />
<PackageVersion Include="WixToolset.Util.wixext" Version="5.0.2" />
<PackageVersion Include="WixToolset.UI.wixext" Version="5.0.2" />
<PackageVersion Include="WixToolset.NetFx.wixext" Version="5.0.2" />
<PackageVersion Include="WixToolset.Bal.wixext" Version="5.0.2" />
</ItemGroup>
<ItemGroup Condition="'$(IsExperimentationLive)'!=''">
<!-- Additional dependencies used by experimentation -->

Binary file not shown.

View File

@@ -0,0 +1,526 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- These properties can be overridden to support non-default installations. -->
<PropertyGroup>
<WixHeatBinDir Condition=" '$(WixHeatBinDir)' == '' and '$(MSBuildRuntimeType)' == 'Core' ">$(MSBuildThisFileDirectory)..\tools\net6.0\</WixHeatBinDir>
<WixHeatBinDir Condition=" '$(WixHeatBinDir)' == '' ">$(MSBuildThisFileDirectory)..\tools\net472\</WixHeatBinDir>
<WixHeatTasksPath Condition=" '$(WixHeatTasksPath)' == '' ">$(WixHeatBinDir)WixToolset.HeatTasks.dll</WixHeatTasksPath>
<!--
For backwards compatibility, the MSBuild tasks always default to the x86 heat.exe even though a x64 heat.exe is available.
For "dotnet.exe build" the Heat tasks calculate the command-line to start heat.dll in .NET Core.
-->
<HeatToolDir Condition=" '$(HeatToolDir)' == '' and '$(MSBuildRuntimeType)' != 'Core' ">$(MSBuildThisFileDirectory)..\tools\net472\x86\</HeatToolDir>
<HeatExe Condition=" '$(HeatExe)' == '' ">$(MSBuildThisFileDirectory)..\tools\net472\x86\heat.exe</HeatExe>
<HeatExe64 Condition=" '$(HeatExe64)' == '' ">$(MSBuildThisFileDirectory)..\tools\net472\x64\heat.exe</HeatExe64>
</PropertyGroup>
<!-- These tasks are extensions for harvesting WiX source code from other sources. -->
<UsingTask TaskName="HeatFile" AssemblyFile="$(WixHeatTasksPath)" />
<UsingTask TaskName="HeatDirectory" AssemblyFile="$(WixHeatTasksPath)" />
<UsingTask TaskName="HeatProject" AssemblyFile="$(WixHeatTasksPath)" />
<UsingTask TaskName="RefreshGeneratedFile" AssemblyFile="$(WixHeatTasksPath)"/>
<UsingTask TaskName="RefreshBundleGeneratedFile" AssemblyFile="$(WixHeatTasksPath)"/>
<!-- Default Harvester properties-->
<PropertyGroup>
<HarvestNoLogo Condition=" '$(HarvestNoLogo)' == '' ">$(NoLogo)</HarvestNoLogo>
<HarvestSuppressAllWarnings Condition=" '$(HarvestSuppressAllWarnings)' == '' ">$(SuppressAllWarnings)</HarvestSuppressAllWarnings>
<HarvestSuppressSpecificWarnings Condition=" '$(HarvestSuppressSpecificWarnings)' == '' ">$(SuppressSpecificWarnings)</HarvestSuppressSpecificWarnings>
<HarvestTreatWarningsAsErrors Condition=" '$(HarvestTreatWarningsAsErrors)' == '' ">$(TreatWarningsAsErrors)</HarvestTreatWarningsAsErrors>
<HarvestTreatSpecificWarningsAsErrors Condition=" '$(HarvestTreatSpecificWarningsAsErrors)' == '' ">$(TreatSpecificWarningsAsErrors)</HarvestTreatSpecificWarningsAsErrors>
<HarvestVerboseOutput Condition=" '$(HarvestVerboseOutput)' == '' ">$(VerboseOutput)</HarvestVerboseOutput>
<HarvestAutogenerateGuids Condition=" '$(HarvestAutogenerateGuids)' == '' ">true</HarvestAutogenerateGuids>
<HarvestGenerateGuidsNow Condition=" '$(HarvestGenerateGuidsNow)' == '' ">false</HarvestGenerateGuidsNow>
<HarvestSuppressFragments Condition=" '$(HarvestSuppressFragments)' == '' ">true</HarvestSuppressFragments>
<HarvestSuppressUniqueIds Condition=" '$(HarvestSuppressUniqueIds)' == '' ">false</HarvestSuppressUniqueIds>
</PropertyGroup>
<!-- Default HarvestProjects properties -->
<PropertyGroup>
<!-- Project harvesting is defaulted to off until it works more consistently. -->
<EnableProjectHarvesting Condition=" '$(EnableProjectHarvesting)'=='' ">false</EnableProjectHarvesting>
<HarvestProjectsNoLogo Condition=" '$(HarvestProjectsNoLogo)' == '' ">$(HarvestNoLogo)</HarvestProjectsNoLogo>
<HarvestProjectsSuppressAllWarnings Condition=" '$(HarvestProjectsSuppressAllWarnings)' == '' ">$(HarvestSuppressAllWarnings)</HarvestProjectsSuppressAllWarnings>
<HarvestProjectsSuppressSpecificWarnings Condition=" '$(HarvestProjectsSuppressSpecificWarnings)' == '' ">$(HarvestSuppressSpecificWarnings)</HarvestProjectsSuppressSpecificWarnings>
<HarvestProjectsTreatWarningsAsErrors Condition=" '$(HarvestProjectsTreatWarningsAsErrors)' == '' ">$(HarvestTreatWarningsAsErrors)</HarvestProjectsTreatWarningsAsErrors>
<HarvestProjectsTreatSpecificWarningsAsErrors Condition=" '$(HarvestProjectsTreatSpecificWarningsAsErrors)' == '' ">$(HarvestTreatSpecificWarningsAsErrors)</HarvestProjectsTreatSpecificWarningsAsErrors>
<HarvestProjectsVerboseOutput Condition=" '$(HarvestProjectsVerboseOutput)' == '' ">$(HarvestVerboseOutput)</HarvestProjectsVerboseOutput>
<HarvestProjectsAutogenerateGuids Condition=" '$(HarvestProjectsAutogenerateGuids)' == '' ">$(HarvestAutogenerateGuids)</HarvestProjectsAutogenerateGuids>
<HarvestProjectsGenerateGuidsNow Condition=" '$(HarvestProjectsGenerateGuidsNow)' == '' ">$(HarvestGenerateGuidsNow)</HarvestProjectsGenerateGuidsNow>
<HarvestProjectsSuppressFragments Condition=" '$(HarvestProjectsSuppressFragments)' == '' ">$(HarvestSuppressFragments)</HarvestProjectsSuppressFragments>
<HarvestProjectsSuppressUniqueIds Condition=" '$(HarvestProjectsSuppressUniqueIds)' == '' ">$(HarvestSuppressUniqueIds)</HarvestProjectsSuppressUniqueIds>
<HarvestProjectsTransforms Condition=" '$(HarvestProjectsTransforms)' == '' ">$(HarvestTransforms)</HarvestProjectsTransforms>
<HarvestProjectsGeneratedFile Condition=" '$(HarvestProjectsGeneratedFile)' == '' and '$(OutputType)' != 'Bundle' ">$(IntermediateOutputPath)Product.Generated.wxs</HarvestProjectsGeneratedFile>
<HarvestProjectsGeneratedFile Condition=" '$(HarvestProjectsGeneratedFile)' == '' and '$(OutputType)' == 'Bundle' ">$(IntermediateOutputPath)Bundle.Generated.wxs</HarvestProjectsGeneratedFile>
<HarvestProjectsMsbuildBinPath Condition=" '$(HarvestProjectsMsbuildBinPath)' == '' ">$(MSBuildBinPath)</HarvestProjectsMsbuildBinPath>
</PropertyGroup>
<!-- Default HarvestDirectory properties -->
<PropertyGroup>
<HarvestDirectoryNoLogo Condition=" '$(HarvestDirectoryNoLogo)' == '' ">$(HarvestNoLogo)</HarvestDirectoryNoLogo>
<HarvestDirectorySuppressAllWarnings Condition=" '$(HarvestDirectorySuppressAllWarnings)' == '' ">$(HarvestSuppressAllWarnings)</HarvestDirectorySuppressAllWarnings>
<HarvestDirectorySuppressSpecificWarnings Condition=" '$(HarvestDirectorySuppressSpecificWarnings)' == '' ">$(HarvestSuppressSpecificWarnings)</HarvestDirectorySuppressSpecificWarnings>
<HarvestDirectoryTreatWarningsAsErrors Condition=" '$(HarvestDirectoryTreatWarningsAsErrors)' == '' ">$(HarvestTreatWarningsAsErrors)</HarvestDirectoryTreatWarningsAsErrors>
<HarvestDirectoryTreatSpecificWarningsAsErrors Condition=" '$(HarvestDirectoryTreatSpecificWarningsAsErrors)' == '' ">$(HarvestTreatSpecificWarningsAsErrors)</HarvestDirectoryTreatSpecificWarningsAsErrors>
<HarvestDirectoryVerboseOutput Condition=" '$(HarvestDirectoryVerboseOutput)' == '' ">$(HarvestVerboseOutput)</HarvestDirectoryVerboseOutput>
<HarvestDirectoryAutogenerateGuids Condition=" '$(HarvestDirectoryAutogenerateGuids)' == '' ">$(HarvestAutogenerateGuids)</HarvestDirectoryAutogenerateGuids>
<HarvestDirectoryGenerateGuidsNow Condition=" '$(HarvestDirectoryGenerateGuidsNow)' == '' ">$(HarvestGenerateGuidsNow)</HarvestDirectoryGenerateGuidsNow>
<HarvestDirectorySuppressFragments Condition=" '$(HarvestDirectorySuppressFragments)' == '' ">$(HarvestSuppressFragments)</HarvestDirectorySuppressFragments>
<HarvestDirectorySuppressUniqueIds Condition=" '$(HarvestDirectorySuppressUniqueIds)' == '' ">$(HarvestSuppressUniqueIds)</HarvestDirectorySuppressUniqueIds>
<HarvestDirectoryTransforms Condition=" '$(HarvestDirectoryTransforms)' == '' ">$(HarvestTransforms)</HarvestDirectoryTransforms>
</PropertyGroup>
<!-- Default HarvestFile properties -->
<PropertyGroup>
<HarvestFileNoLogo Condition=" '$(HarvestFileNoLogo)' == '' ">$(HarvestNoLogo)</HarvestFileNoLogo>
<HarvestFileSuppressAllWarnings Condition=" '$(HarvestFileSuppressAllWarnings)' == '' ">$(HarvestSuppressAllWarnings)</HarvestFileSuppressAllWarnings>
<HarvestFileSuppressSpecificWarnings Condition=" '$(HarvestFileSuppressSpecificWarnings)' == '' ">$(HarvestSuppressSpecificWarnings)</HarvestFileSuppressSpecificWarnings>
<HarvestFileTreatWarningsAsErrors Condition=" '$(HarvestFileTreatWarningsAsErrors)' == '' ">$(HarvestTreatWarningsAsErrors)</HarvestFileTreatWarningsAsErrors>
<HarvestFileTreatSpecificWarningsAsErrors Condition=" '$(HarvestFileTreatSpecificWarningsAsErrors)' == '' ">$(HarvestTreatSpecificWarningsAsErrors)</HarvestFileTreatSpecificWarningsAsErrors>
<HarvestFileVerboseOutput Condition=" '$(HarvestFileVerboseOutput)' == '' ">$(HarvestVerboseOutput)</HarvestFileVerboseOutput>
<HarvestFileAutogenerateGuids Condition=" '$(HarvestFileAutogenerateGuids)' == '' ">$(HarvestAutogenerateGuids)</HarvestFileAutogenerateGuids>
<HarvestFileGenerateGuidsNow Condition=" '$(HarvestFileGenerateGuidsNow)' == '' ">$(HarvestGenerateGuidsNow)</HarvestFileGenerateGuidsNow>
<HarvestFileSuppressFragments Condition=" '$(HarvestFileSuppressFragments)' == '' ">$(HarvestSuppressFragments)</HarvestFileSuppressFragments>
<HarvestFileSuppressUniqueIds Condition=" '$(HarvestFileSuppressUniqueIds)' == '' ">$(HarvestSuppressUniqueIds)</HarvestFileSuppressUniqueIds>
<HarvestFileTransforms Condition=" '$(HarvestFileTransforms)' == '' ">$(HarvestTransforms)</HarvestFileTransforms>
</PropertyGroup>
<!--
==================================================================================================
Harvest
==================================================================================================
-->
<PropertyGroup>
<CoreCompileDependsOn>
$(CoreCompileDependsOn);
Harvest
</CoreCompileDependsOn>
<HarvestDependsOn>
ConvertReferences;
ConvertBundleReferences;
HarvestProjects;
HarvestDirectory;
HarvestFile;
GenerateCode;
</HarvestDependsOn>
</PropertyGroup>
<Target
Name="Harvest"
DependsOnTargets="$(HarvestDependsOn)" />
<!--
==================================================================================================
GenerateCode
==================================================================================================
-->
<PropertyGroup>
<GenerateCodeDependsOn>
RefreshGeneratedFile;
RefreshBundleGeneratedFile
</GenerateCodeDependsOn>
</PropertyGroup>
<Target
Name="GenerateCode"
DependsOnTargets="$(GenerateCodeDependsOn)" />
<!--
================================================================================================
ConvertReferences
Converts project references to HeatProject items to auto generate authoring.
================================================================================================
-->
<Target
Name="ConvertReferences"
Condition=" $(EnableProjectHarvesting) and ('$(OutputType)' == 'Package' or '$(OutputType)' == 'PatchCreation' or '$(OutputType)' == 'Module') ">
<ItemGroup>
<_HeatProjectReference Include="@(_MSBuildProjectReferenceExistent)" Condition=" '%(_MSBuildProjectReferenceExistent.DoNotHarvest)' == '' ">
<DirectoryIds>%(_MSBuildProjectReferenceExistent.RefTargetDir)</DirectoryIds>
<ProjectOutputGroups>Binaries;Symbols;Sources;Content;Satellites;Documents</ProjectOutputGroups>
<ProjectName>%(_MSBuildProjectReferenceExistent.Name)</ProjectName>
<HeatOutput>$(IntermediateOutputPath)_%(_MSBuildProjectReferenceExistent.Filename).wxs</HeatOutput>
</_HeatProjectReference>
<HeatProject Include="@(_HeatProjectReference)" />
</ItemGroup>
<ItemGroup>
<!-- Unconditionally generate Compile items so they are always linked in. -->
<Compile Include="$(HarvestProjectsGeneratedFile)" />
<_GeneratedFiles Include="$(HarvestProjectsGeneratedFile)" />
</ItemGroup>
</Target>
<!--
================================================================================================
ConvertBundleReferences
Converts project references in Bundle projects to HeatProject items to auto generate authoring.
================================================================================================
-->
<Target
Name="ConvertBundleReferences"
Condition=" $(EnableProjectHarvesting) and ('$(OutputType)' == 'Bundle') ">
<ItemGroup>
<_HeatProjectReference Include="@(_MSBuildProjectReferenceExistent)" Condition=" '%(_MSBuildProjectReferenceExistent.DoNotHarvest)' == '' ">
<ProjectOutputGroups>Binaries;Symbols;Sources;Content;Satellites;Documents</ProjectOutputGroups>
<GenerateType>payloadgroup</GenerateType>
<HeatOutput>$(IntermediateOutputPath)_%(_MSBuildProjectReferenceExistent.Filename).wxs</HeatOutput>
</_HeatProjectReference>
<HeatProject Include="@(_HeatProjectReference)" />
</ItemGroup>
<ItemGroup>
<!-- Unconditionally generate Compile items so they are always linked in. -->
<Compile Include="$(HarvestProjectsGeneratedFile)" />
<_GeneratedFiles Include="$(HarvestProjectsGeneratedFile)" />
</ItemGroup>
</Target>
<!--
================================================================================================
CombineHarvestProjects
Combines HeatProject and HarvestProject items together and ensures each has HeatOutput metadata.
================================================================================================
-->
<Target
Name="CombineHarvestProjects"
Condition=" '@(HeatProject)' != '' or '@(HarvestProject)' != '' ">
<!-- Add default HeatOutputs for those without one specified -->
<CreateItem Include="@(HeatProject)" Condition= " '%(HeatProject.HeatOutput)' == '' "
AdditionalMetadata="HeatOutput=$(IntermediateOutputPath)_%(HeatProject.Filename).wxs">
<Output TaskParameter="Include" ItemName="_AllHeatProjects" />
</CreateItem>
<CreateItem Include="@(HarvestProject)" Condition= " '%(HarvestProject.HeatOutput)' == '' "
AdditionalMetadata="HeatOutput=$(IntermediateOutputPath)_%(HarvestProject.Filename).wxs">
<Output TaskParameter="Include" ItemName="_AllHeatProjects" />
</CreateItem>
<CreateItem Include="@(HeatProject)" Condition= " '%(HeatProject.HeatOutput)' != '' ">
<Output TaskParameter="Include" ItemName="_AllHeatProjects" />
</CreateItem>
<CreateItem Include="@(HarvestProject)" Condition= " '%(HarvestProject.HeatOutput)' != '' ">
<Output TaskParameter="Include" ItemName="_AllHeatProjects" />
</CreateItem>
</Target>
<!--
================================================================================================
HarvestProjects
Harvests outputs of other MSBuild projects files using the VS project extension to heat.exe.
[IN]
@(HarvestProject)
@(HeatProject)
- The list of projects to harvest. HeatProject is provided for backward compatibility.
You should use HarvestProject instead.
%(HarvestProject.Transforms)
%(HeatProject.Transforms)
- XSL transforms to apply to the harvested WiX.
%(HarvestProject.ProjectOutputGroups)
%(HeatProjects.ProjectOutputGroups)
- The project output groups to harvest
%(HarvestProject.AdditionalOptions)
%(HeatProjects.AdditionalOptions)
- Any additional harvesting command line options
[OUT]
%(HeatOutput)
- The generated .wxs files which are added to the @(Compile) item list.
================================================================================================
-->
<ItemDefinitionGroup>
<HeatProject>
<Transforms>$(HarvestProjectsTransforms)</Transforms>
<ProjectOutputGroups>$(HarvestProjectsProjectOutputGroups)</ProjectOutputGroups>
<DirectoryIds>$(HarvestProjectsDirectoryIds)</DirectoryIds>
<AdditionalOptions>$(HarvestProjectsAdditionalOptions)</AdditionalOptions>
</HeatProject>
<HarvestProject>
<Transforms>$(HarvestProjectsTransforms)</Transforms>
<ProjectOutputGroups>$(HarvestProjectsProjectOutputGroups)</ProjectOutputGroups>
<DirectoryIds>$(HarvestProjectsDirectoryIds)</DirectoryIds>
<AdditionalOptions>$(HarvestProjectsAdditionalOptions)</AdditionalOptions>
</HarvestProject>
</ItemDefinitionGroup>
<PropertyGroup>
<HarvestProjectsDependsOn>CombineHarvestProjects</HarvestProjectsDependsOn>
</PropertyGroup>
<Target Name="HarvestProjects"
DependsOnTargets="$(HarvestProjectsDependsOn)"
Inputs="@(_AllHeatProjects);%(_AllHeatProjects.Transforms);$(ProjectPath)"
Outputs="@(_AllHeatProjects -> '%(HeatOutput)')"
Condition=" $(EnableProjectHarvesting) and ('@(HeatProject)' != '' or '@(HarvestProject)' != '') ">
<HeatProject
NoLogo="true"
SuppressAllWarnings="$(HarvestProjectsSuppressAllWarnings)"
SuppressSpecificWarnings="$(HarvestProjectsSuppressSpecificWarnings)"
TreatWarningsAsErrors="$(HarvestProjectsTreatWarningsAsErrors)"
TreatSpecificWarningsAsErrors="$(HarvestProjectsTreatSpecificWarningsAsErrors)"
VerboseOutput="$(HarvestProjectsVerboseOutput)"
AutogenerateGuids="$(HarvestProjectsAutogenerateGuids)"
GenerateGuidsNow="$(HarvestProjectsGenerateGuidsNow)"
OutputFile="%(_AllHeatProjects.HeatOutput)"
SuppressFragments="$(HarvestProjectsSuppressFragments)"
SuppressUniqueIds="$(HarvestProjectsSuppressUniqueIds)"
Transforms="%(_AllHeatProjects.Transforms)"
Project="%(_AllHeatProjects.FullPath)"
ProjectOutputGroups="%(_AllHeatProjects.ProjectOutputGroups)"
GenerateType="%(_AllHeatProjects.GenerateType)"
MsbuildBinPath="$(HarvestProjectsMsbuildBinPath)"
DirectoryIds="%(_AllHeatProjects.DirectoryIds)"
ProjectName="%(_AllHeatProjects.ProjectName)"
Configuration="%(_AllHeatProjects.Configuration)"
Platform="%(_AllHeatProjects.Platform)"
GenerateWixVariables="$(HarvestProjectsGenerateWixVariables)"
UseToolsVersion="$(HarvestProjectsUseToolsVersion)"
AdditionalOptions="%(_AllHeatProjects.AdditionalOptions)"
ToolPath="$(HeatToolDir)">
<Output TaskParameter="OutputFile" ItemName="Compile" />
<Output TaskParameter="OutputFile" ItemName="FileWrites" />
</HeatProject>
</Target>
<!--
================================================================================================
HarvestDirectory
Harvests directories using heat.exe.
[IN]
@(HarvestDirectory) - The list of directories to harvest.
%(HarvestDirectory.Transforms) - XSL transforms to apply to the harvested WiX.
%(HarvestDirectory.ComponentGroupName) - The name of the ComponentGroup to create.
%(HarvestDirectory.DirectoryRefId) - The ID of the directory to reference instead of TARGETDIR.
%(HarvestDirectory.KeepEmptyDirectories) - Whether to create Directory entries for empty directories.
%(HarvestDirectory.PreprocessorVariable) - Substitute SourceDir for another variable name (ex: var.Dir).
%(HarvestDirectory.SuppressCom) - Suppress COM elements.
%(HarvestDirectory.SuppressRootDirectory) - Suppress a Directory element for the root directory.
%(HarvestDirectory.SuppressRegistry) - Suppress registry harvesting.
%(HarvestDirectory.AdditionalOptions) - Any additional harvesting command line options.
[OUT]
$(IntermediateOutputPath)_%(HarvestDirectory.ComponentGroupName)_dir.wxs
- The generated .wxs files which are added to the @(Compile) item list.
================================================================================================
-->
<ItemDefinitionGroup>
<HarvestDirectory>
<Transforms>$(HarvestDirectoryTransforms)</Transforms>
<ComponentGroupName>$(HarvestDirectoryComponentGroupName)</ComponentGroupName>
<DirectoryRefId>$(HarvestDirectoryDirectoryRefId)</DirectoryRefId>
<KeepEmptyDirectories>$(HarvestDirectoryKeepEmptyDirectories)</KeepEmptyDirectories>
<PreprocessorVariable>$(HarvestDirectoryPreprocessorVariable)</PreprocessorVariable>
<SuppressCom>$(HarvestDirectorySuppressCom)</SuppressCom>
<SuppressRootDirectory>$(HarvestDirectorySuppressRootDirectory)</SuppressRootDirectory>
<SuppressRegistry>$(HarvestDirectorySuppressRegistry)</SuppressRegistry>
<AdditionalOptions>$(HarvestDirectoryAdditionalOptions)</AdditionalOptions>
</HarvestDirectory>
</ItemDefinitionGroup>
<PropertyGroup>
<HarvestDirectoryDependsOn>
GetHarvestDirectoryContent
</HarvestDirectoryDependsOn>
</PropertyGroup>
<!-- Creates items to include content since wildcards will not work in Target/@Inputs. -->
<Target Name="GetHarvestDirectoryContent">
<CreateItem Include="@(HarvestDirectory->'%(FullPath)\**\*')">
<Output TaskParameter="Include" ItemName="_HarvestDirectoryContent" />
</CreateItem>
</Target>
<Target Name="HarvestDirectory"
DependsOnTargets="$(HarvestDirectoryDependsOn)"
Inputs="@(_HarvestDirectoryContent);%(HarvestDirectory.Transforms)"
Outputs="$(IntermediateOutputPath)_%(HarvestDirectory.ComponentGroupName)_dir.wxs"
Condition=" '@(HarvestDirectory)' != '' ">
<HeatDirectory
NoLogo="true"
SuppressAllWarnings="$(HarvestDirectorySuppressAllWarnings)"
SuppressSpecificWarnings="$(HarvestDirectorySuppressSpecificWarnings)"
TreatWarningsAsErrors="$(HarvestDirectoryTreatWarningsAsErrors)"
TreatSpecificWarningsAsErrors="$(HarvestDirectoryTreatSpecificWarningsAsErrors)"
VerboseOutput="$(HarvestDirectoryVerboseOutput)"
AutogenerateGuids="$(HarvestDirectoryAutogenerateGuids)"
GenerateGuidsNow="$(HarvestDirectoryGenerateGuidsNow)"
OutputFile="$(IntermediateOutputPath)_%(HarvestDirectory.ComponentGroupName)_dir.wxs"
SuppressFragments="$(HarvestDirectorySuppressFragments)"
SuppressUniqueIds="$(HarvestDirectorySuppressUniqueIds)"
Transforms="%(HarvestDirectory.Transforms)"
Directory="@(HarvestDirectory)"
ComponentGroupName="%(HarvestDirectory.ComponentGroupName)"
DirectoryRefId="%(HarvestDirectory.DirectoryRefId)"
KeepEmptyDirectories="%(HarvestDirectory.KeepEmptyDirectories)"
PreprocessorVariable="%(HarvestDirectory.PreprocessorVariable)"
SuppressCom="%(HarvestDirectory.SuppressCom)"
SuppressRootDirectory="%(HarvestDirectory.SuppressRootDirectory)"
SuppressRegistry="%(HarvestDirectory.SuppressRegistry)"
AdditionalOptions="%(HarvestDirectory.AdditionalOptions)"
ToolPath="$(HeatToolDir)">
<Output TaskParameter="OutputFile" ItemName="Compile" />
<Output TaskParameter="OutputFile" ItemName="FileWrites" />
</HeatDirectory>
</Target>
<!--
================================================================================================
HarvestFile
Harvests files of different types using heat.exe. This can harvest registry from
self-registering files, files with typelibs, and more.
[IN]
@(HarvestFile) - The list of files to harvest.
%(HarvestFile.Transforms) - XSL transforms to apply to the harvested WiX.
%(HarvestFile.ComponentGroupName) - The name of the ComponentGroup to create.
%(HarvestFile.DirectoryRefId) - The ID of the directory to reference instead of TARGETDIR.
%(HarvestFile.PreprocessorVariable) - Substitute SourceDir for another variable name (ex: var.Dir).
%(HarvestFile.SuppressCom) - Suppress COM elements.
%(HarvestFile.SuppressRootDirectory) - Suppress a Directory element for the root directory.
$(HarvestFile.SuppressRegistry) - Suppress registry harvesting.
%(HarvestFile.AdditionalOptions) - Any additional harvesting command line options.
[OUT]
$(IntermediateOutputPath)_%(HarvestFile.Filename)_file.wxs
- The generated .wxs files which are added to the @(Compile) item list.
================================================================================================
-->
<ItemDefinitionGroup>
<HarvestFile>
<Transforms>$(HarvestFileTransforms)</Transforms>
<ComponentGroupName>$(HarvestFileComponentGroupName)</ComponentGroupName>
<DirectoryRefId>$(HarvestFileDirectoryRefId)</DirectoryRefId>
<PreprocessorVariable>$(HarvestFilePreprocessorVariable)</PreprocessorVariable>
<SuppressCom>$(HarvestFileSuppressCom)</SuppressCom>
<SuppressRegistry>$(HarvestFileSuppressRegistry)</SuppressRegistry>
<SuppressRootDirectory>$(HarvestFileSuppressRootDirectory)</SuppressRootDirectory>
<AdditionalOptions>$(HarvestFileAdditionalOptions)</AdditionalOptions>
</HarvestFile>
</ItemDefinitionGroup>
<PropertyGroup>
<HarvestFileDependsOn></HarvestFileDependsOn>
</PropertyGroup>
<Target Name="HarvestFile"
DependsOnTargets="$(HarvestFileDependsOn)"
Inputs="@(HarvestFile);%(HarvestFile.Transforms)"
Outputs="@(HarvestFile->'$(IntermediateOutputPath)_%(ComponentGroupName)_%(DirectoryRefId)_%(Filename)%(Extension)_file.wxs')"
Condition=" '@(HarvestFile)' != '' ">
<HeatFile
NoLogo="true"
SuppressAllWarnings="$(HarvestFileSuppressAllWarnings)"
SuppressSpecificWarnings="$(HarvestFileSuppressSpecificWarnings)"
TreatWarningsAsErrors="$(HarvestFileTreatWarningsAsErrors)"
TreatSpecificWarningsAsErrors="$(HarvestFileTreatSpecificWarningsAsErrors)"
VerboseOutput="$(HarvestFileVerboseOutput)"
AutogenerateGuids="$(HarvestFileAutogenerateGuids)"
GenerateGuidsNow="$(HarvestFileGenerateGuidsNow)"
OutputFile="$(IntermediateOutputPath)_%(HarvestFile.ComponentGroupName)_%(HarvestFile.DirectoryRefId)_%(HarvestFile.Filename)%(HarvestFile.Extension)_file.wxs"
SuppressFragments="$(HarvestFileSuppressFragments)"
SuppressUniqueIds="$(HarvestFileSuppressUniqueIds)"
Transforms="%(HarvestFile.Transforms)"
File="@(HarvestFile)"
ComponentGroupName="%(HarvestFile.ComponentGroupName)"
DirectoryRefId="%(HarvestFile.DirectoryRefId)"
PreprocessorVariable="%(HarvestFile.PreprocessorVariable)"
SuppressCom="%(HarvestFile.SuppressCom)"
SuppressRegistry="%(HarvestFile.SuppressRegistry)"
SuppressRootDirectory="%(HarvestFile.SuppressRootDirectory)"
AdditionalOptions="%(HarvestFile.AdditionalOptions)"
ToolPath="$(HeatToolDir)">
<Output TaskParameter="OutputFile" ItemName="Compile" />
<Output TaskParameter="OutputFile" ItemName="FileWrites" />
</HeatFile>
</Target>
<!--
================================================================================================
RefreshGeneratedFile
Generates code based on metadata defined in project references.
[IN]
@(_MSBuildResolvedProjectReferencePaths) - The list of MSBuildable project references.
[OUT]
@(_GeneratedFiles) - The generated source file.
================================================================================================
-->
<PropertyGroup>
<RefreshGeneratedFileDependsOn></RefreshGeneratedFileDependsOn>
</PropertyGroup>
<Target Name="RefreshGeneratedFile"
DependsOnTargets="$(RefreshGeneratedFileDependsOn)"
Inputs="@(_MSBuildResolvedProjectReferencePaths);@(Compile);$(ProjectPath)"
Outputs="@(_GeneratedFiles)"
Condition=" $(EnableProjectHarvesting) and ('$(OutputType)' == 'Package' or '$(OutputType)' == 'PatchCreation' or '$(OutputType)' == 'Module') and '@(_GeneratedFiles)' != '' ">
<RefreshGeneratedFile
GeneratedFiles="@(_GeneratedFiles)"
ProjectReferencePaths="@(_MSBuildResolvedProjectReferencePaths)" />
</Target>
<!--
================================================================================================
RefreshBundleGeneratedFile
Generates code for bundle projects based on metadata defined in project references.
[IN]
@(_MSBuildResolvedProjectReferencePaths) - The list of MSBuildable project references.
[OUT]
@(_GeneratedFiles) - The generated source file.
================================================================================================
-->
<PropertyGroup>
<RefreshBundleGeneratedFileDependsOn></RefreshBundleGeneratedFileDependsOn>
</PropertyGroup>
<Target Name="RefreshBundleGeneratedFile"
DependsOnTargets="$(RefreshBundleGeneratedFileDependsOn)"
Inputs="@(_MSBuildResolvedProjectReferencePaths);@(Compile);$(ProjectPath)"
Outputs="@(_GeneratedFiles)"
Condition=" $(EnableProjectHarvesting) and ('$(OutputType)' == 'Bundle' and '@(_GeneratedFiles)' != '') ">
<RefreshBundleGeneratedFile
GeneratedFiles="@(_GeneratedFiles)"
ProjectReferencePaths="@(_MSBuildResolvedProjectReferencePaths)" />
</Target>
</Project>

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,593 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v6.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v6.0": {
"WixToolset.HeatTasks/5.0.2": {
"dependencies": {
"Microsoft.Build.Tasks.Core": "15.7.179",
"Microsoft.SourceLink.GitHub": "1.1.1",
"WixInternal.BaseBuildTasks.Sources": "5.0.2"
},
"runtime": {
"WixToolset.HeatTasks.dll": {}
}
},
"Microsoft.Build.Framework/15.7.179": {
"dependencies": {
"System.Runtime.Serialization.Primitives": "4.1.1",
"System.Threading.Thread": "4.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Build.Framework.dll": {
"assemblyVersion": "15.1.0.0",
"fileVersion": "15.7.179.6572"
}
}
},
"Microsoft.Build.Tasks.Core/15.7.179": {
"dependencies": {
"Microsoft.Build.Framework": "15.7.179",
"Microsoft.Build.Utilities.Core": "15.7.179",
"System.Collections.Immutable": "1.3.1",
"System.Linq.Parallel": "4.0.1",
"System.Reflection.Metadata": "1.3.0",
"System.Reflection.TypeExtensions": "4.1.0",
"System.Resources.Writer": "4.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Build.Tasks.Core.dll": {
"assemblyVersion": "15.1.0.0",
"fileVersion": "15.7.179.6572"
}
}
},
"Microsoft.Build.Tasks.Git/1.1.1": {},
"Microsoft.Build.Utilities.Core/15.7.179": {
"dependencies": {
"Microsoft.Build.Framework": "15.7.179",
"System.Collections.Immutable": "1.3.1",
"System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
"System.Text.Encoding.CodePages": "4.4.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Build.Utilities.Core.dll": {
"assemblyVersion": "15.1.0.0",
"fileVersion": "15.7.179.6572"
}
}
},
"Microsoft.NETCore.Platforms/2.0.0": {},
"Microsoft.NETCore.Targets/1.1.0": {},
"Microsoft.SourceLink.Common/1.1.1": {},
"Microsoft.SourceLink.GitHub/1.1.1": {
"dependencies": {
"Microsoft.Build.Tasks.Git": "1.1.1",
"Microsoft.SourceLink.Common": "1.1.1"
}
},
"runtime.native.System/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0"
}
},
"System.Collections/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Collections.Concurrent/4.0.12": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Diagnostics.Tracing": "4.1.0",
"System.Globalization": "4.3.0",
"System.Reflection": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Threading": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.Collections.Immutable/1.3.1": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Globalization": "4.3.0",
"System.Linq": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Threading": "4.3.0"
}
},
"System.Diagnostics.Debug/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Diagnostics.Tracing/4.1.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Globalization/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.IO/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.Linq/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0"
}
},
"System.Linq.Parallel/4.0.1": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Collections.Concurrent": "4.0.12",
"System.Diagnostics.Debug": "4.3.0",
"System.Diagnostics.Tracing": "4.1.0",
"System.Linq": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Threading": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.Reflection/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.IO": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Extensions/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Metadata/1.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Collections.Immutable": "1.3.1",
"System.Diagnostics.Debug": "4.3.0",
"System.IO": "4.3.0",
"System.Linq": "4.3.0",
"System.Reflection": "4.3.0",
"System.Reflection.Extensions": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Runtime.InteropServices": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Text.Encoding.Extensions": "4.0.11",
"System.Threading": "4.3.0"
}
},
"System.Reflection.Primitives/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.TypeExtensions/4.1.0": {
"dependencies": {
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Resources.ResourceManager/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Globalization": "4.3.0",
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Resources.Writer/4.0.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.IO": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Text.Encoding": "4.3.0"
}
},
"System.Runtime/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0"
}
},
"System.Runtime.Extensions/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime.Handles/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime.InteropServices/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Reflection": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Handles": "4.3.0"
}
},
"System.Runtime.InteropServices.RuntimeInformation/4.3.0": {
"dependencies": {
"System.Reflection": "4.3.0",
"System.Reflection.Extensions": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.InteropServices": "4.3.0",
"System.Threading": "4.3.0",
"runtime.native.System": "4.3.0"
}
},
"System.Runtime.Serialization.Primitives/4.1.1": {
"dependencies": {
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Text.Encoding/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Text.Encoding.CodePages/4.4.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0"
}
},
"System.Text.Encoding.Extensions/4.0.11": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0",
"System.Text.Encoding": "4.3.0"
}
},
"System.Threading/4.3.0": {
"dependencies": {
"System.Runtime": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.Threading.Tasks/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Threading.Thread/4.0.0": {
"dependencies": {
"System.Runtime": "4.3.0"
}
},
"WixInternal.BaseBuildTasks.Sources/5.0.2": {}
}
},
"libraries": {
"WixToolset.HeatTasks/5.0.2": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.Build.Framework/15.7.179": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5ThHhQLruyqwv0wKu32rI88JK8/MgG8f2Ztb1g3facEshsFHF9npp0w7bhmwEO5d8dvj43wCGRYhfPit8roGZg==",
"path": "microsoft.build.framework/15.7.179",
"hashPath": "microsoft.build.framework.15.7.179.nupkg.sha512"
},
"Microsoft.Build.Tasks.Core/15.7.179": {
"type": "package",
"serviceable": true,
"sha512": "sha512-IcyaCiuYzK4RU/ctgJiziv1OyURo0WYtqfvqI9u8Iru8Tw57oLILEXQQKRATJYZZN1uFvlGR0sro1GzdgdTaKQ==",
"path": "microsoft.build.tasks.core/15.7.179",
"hashPath": "microsoft.build.tasks.core.15.7.179.nupkg.sha512"
},
"Microsoft.Build.Tasks.Git/1.1.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==",
"path": "microsoft.build.tasks.git/1.1.1",
"hashPath": "microsoft.build.tasks.git.1.1.1.nupkg.sha512"
},
"Microsoft.Build.Utilities.Core/15.7.179": {
"type": "package",
"serviceable": true,
"sha512": "sha512-pTknb2ngDSDe98AlBKSi5CkaX7EBRVDkam0VA9+voGRGWopB+5Zw2IADbxtBdN6A8R+D+PDM1jwhBep2McBGaw==",
"path": "microsoft.build.utilities.core/15.7.179",
"hashPath": "microsoft.build.utilities.core.15.7.179.nupkg.sha512"
},
"Microsoft.NETCore.Platforms/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VdLJOCXhZaEMY7Hm2GKiULmn7IEPFE4XC5LPSfBVCUIA8YLZVh846gtfBJalsPQF2PlzdD7ecX7DZEulJ402ZQ==",
"path": "microsoft.netcore.platforms/2.0.0",
"hashPath": "microsoft.netcore.platforms.2.0.0.nupkg.sha512"
},
"Microsoft.NETCore.Targets/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
"path": "microsoft.netcore.targets/1.1.0",
"hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
},
"Microsoft.SourceLink.Common/1.1.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==",
"path": "microsoft.sourcelink.common/1.1.1",
"hashPath": "microsoft.sourcelink.common.1.1.1.nupkg.sha512"
},
"Microsoft.SourceLink.GitHub/1.1.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==",
"path": "microsoft.sourcelink.github/1.1.1",
"hashPath": "microsoft.sourcelink.github.1.1.1.nupkg.sha512"
},
"runtime.native.System/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
"path": "runtime.native.system/4.3.0",
"hashPath": "runtime.native.system.4.3.0.nupkg.sha512"
},
"System.Collections/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
"path": "system.collections/4.3.0",
"hashPath": "system.collections.4.3.0.nupkg.sha512"
},
"System.Collections.Concurrent/4.0.12": {
"type": "package",
"serviceable": true,
"sha512": "sha512-2gBcbb3drMLgxlI0fBfxMA31ec6AEyYCHygGse4vxceJan8mRIWeKJ24BFzN7+bi/NFTgdIgufzb94LWO5EERQ==",
"path": "system.collections.concurrent/4.0.12",
"hashPath": "system.collections.concurrent.4.0.12.nupkg.sha512"
},
"System.Collections.Immutable/1.3.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-n+AGX7zmiZumW9aggOkXaHzUeAS3EfeTErnkKCusyONUozbTv+kMb8VE36m+ldV6kF9g57G2c641KCdgH9E0pg==",
"path": "system.collections.immutable/1.3.1",
"hashPath": "system.collections.immutable.1.3.1.nupkg.sha512"
},
"System.Diagnostics.Debug/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
"path": "system.diagnostics.debug/4.3.0",
"hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512"
},
"System.Diagnostics.Tracing/4.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-vDN1PoMZCkkdNjvZLql592oYJZgS7URcJzJ7bxeBgGtx5UtR5leNm49VmfHGqIffX4FKacHbI3H6UyNSHQknBg==",
"path": "system.diagnostics.tracing/4.1.0",
"hashPath": "system.diagnostics.tracing.4.1.0.nupkg.sha512"
},
"System.Globalization/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
"path": "system.globalization/4.3.0",
"hashPath": "system.globalization.4.3.0.nupkg.sha512"
},
"System.IO/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
"path": "system.io/4.3.0",
"hashPath": "system.io.4.3.0.nupkg.sha512"
},
"System.Linq/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
"path": "system.linq/4.3.0",
"hashPath": "system.linq.4.3.0.nupkg.sha512"
},
"System.Linq.Parallel/4.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-J7XCa7n2cFn32uLbtceXfBFhgCk5M++50lylHKNbqTiJkw5y4Tglpi6amuJNPCvj9bLzNSI7rs1fi4joLMNRgg==",
"path": "system.linq.parallel/4.0.1",
"hashPath": "system.linq.parallel.4.0.1.nupkg.sha512"
},
"System.Reflection/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
"path": "system.reflection/4.3.0",
"hashPath": "system.reflection.4.3.0.nupkg.sha512"
},
"System.Reflection.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
"path": "system.reflection.extensions/4.3.0",
"hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512"
},
"System.Reflection.Metadata/1.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-jMSCxA4LSyKBGRDm/WtfkO03FkcgRzHxwvQRib1bm2GZ8ifKM1MX1al6breGCEQK280mdl9uQS7JNPXRYk90jw==",
"path": "system.reflection.metadata/1.3.0",
"hashPath": "system.reflection.metadata.1.3.0.nupkg.sha512"
},
"System.Reflection.Primitives/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
"path": "system.reflection.primitives/4.3.0",
"hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
},
"System.Reflection.TypeExtensions/4.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==",
"path": "system.reflection.typeextensions/4.1.0",
"hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512"
},
"System.Resources.ResourceManager/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
"path": "system.resources.resourcemanager/4.3.0",
"hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
},
"System.Resources.Writer/4.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Hz+ZS81dVSNy93YyJhhL3GwzmMhfcQ8FbUooAt9MO4joIe0vPM4gclv0C82ko1tuN/Kw6CvZFLYkgk6n9xvEkg==",
"path": "system.resources.writer/4.0.0",
"hashPath": "system.resources.writer.4.0.0.nupkg.sha512"
},
"System.Runtime/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
"path": "system.runtime/4.3.0",
"hashPath": "system.runtime.4.3.0.nupkg.sha512"
},
"System.Runtime.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
"path": "system.runtime.extensions/4.3.0",
"hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512"
},
"System.Runtime.Handles/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
"path": "system.runtime.handles/4.3.0",
"hashPath": "system.runtime.handles.4.3.0.nupkg.sha512"
},
"System.Runtime.InteropServices/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
"path": "system.runtime.interopservices/4.3.0",
"hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512"
},
"System.Runtime.InteropServices.RuntimeInformation/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
"path": "system.runtime.interopservices.runtimeinformation/4.3.0",
"hashPath": "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512"
},
"System.Runtime.Serialization.Primitives/4.1.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
"path": "system.runtime.serialization.primitives/4.1.1",
"hashPath": "system.runtime.serialization.primitives.4.1.1.nupkg.sha512"
},
"System.Text.Encoding/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
"path": "system.text.encoding/4.3.0",
"hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
},
"System.Text.Encoding.CodePages/4.4.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6JX7ZdaceBiLKLkYt8zJcp4xTJd1uYyXXEkPw6mnlUIjh1gZPIVKPtRXPmY5kLf6DwZmf5YLwR3QUrRonl7l0A==",
"path": "system.text.encoding.codepages/4.4.0",
"hashPath": "system.text.encoding.codepages.4.4.0.nupkg.sha512"
},
"System.Text.Encoding.Extensions/4.0.11": {
"type": "package",
"serviceable": true,
"sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==",
"path": "system.text.encoding.extensions/4.0.11",
"hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512"
},
"System.Threading/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
"path": "system.threading/4.3.0",
"hashPath": "system.threading.4.3.0.nupkg.sha512"
},
"System.Threading.Tasks/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
"path": "system.threading.tasks/4.3.0",
"hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
},
"System.Threading.Thread/4.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==",
"path": "system.threading.thread/4.0.0",
"hashPath": "system.threading.thread.4.0.0.nupkg.sha512"
},
"WixInternal.BaseBuildTasks.Sources/5.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZTiTaRvblUb51tcs7yqNSUqvYwYDJs4GZBhG64281ZIloBBt1179knAs1z42fWAvQIeJQhg+e3exK12LcGQ71Q==",
"path": "wixinternal.basebuildtasks.sources/5.0.2",
"hashPath": "wixinternal.basebuildtasks.sources.5.0.2.nupkg.sha512"
}
}
}

View File

@@ -0,0 +1,689 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v6.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v6.0": {
"heat/5.0.2": {
"dependencies": {
"Microsoft.SourceLink.GitHub": "1.1.1",
"Microsoft.Win32.Registry": "4.7.0",
"System.Configuration.ConfigurationManager": "6.0.1",
"System.Diagnostics.PerformanceCounter": "4.7.0",
"System.DirectoryServices": "4.7.0",
"WixToolset.Core": "5.0.2"
},
"runtime": {
"heat.dll": {}
}
},
"Microsoft.Build.Tasks.Git/1.1.1": {},
"Microsoft.NETCore.Platforms/3.1.1": {},
"Microsoft.NETCore.Targets/1.1.0": {},
"Microsoft.SourceLink.Common/1.1.1": {},
"Microsoft.SourceLink.GitHub/1.1.1": {
"dependencies": {
"Microsoft.Build.Tasks.Git": "1.1.1",
"Microsoft.SourceLink.Common": "1.1.1"
}
},
"Microsoft.Win32.Registry/4.7.0": {
"dependencies": {
"System.Security.AccessControl": "6.0.0",
"System.Security.Principal.Windows": "4.7.0"
}
},
"Microsoft.Win32.SystemEvents/6.0.0": {
"runtime": {
"lib/net6.0/Microsoft.Win32.SystemEvents.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
},
"runtimeTargets": {
"runtimes/win/lib/net6.0/Microsoft.Win32.SystemEvents.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
"runtime.native.System/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0"
}
},
"runtime.native.System.IO.Compression/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0"
}
},
"System.Buffers/4.3.0": {
"dependencies": {
"System.Diagnostics.Debug": "4.3.0",
"System.Diagnostics.Tracing": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Threading": "4.3.0"
}
},
"System.Collections/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Configuration.ConfigurationManager/6.0.1": {
"dependencies": {
"System.Security.Cryptography.ProtectedData": "6.0.0",
"System.Security.Permissions": "6.0.0"
},
"runtime": {
"lib/net6.0/System.Configuration.ConfigurationManager.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.922.41905"
}
}
},
"System.Diagnostics.Debug/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Diagnostics.PerformanceCounter/4.7.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.Win32.Registry": "4.7.0",
"System.Configuration.ConfigurationManager": "6.0.1",
"System.Security.Principal.Windows": "4.7.0"
},
"runtime": {
"lib/netstandard2.0/System.Diagnostics.PerformanceCounter.dll": {
"assemblyVersion": "4.0.2.0",
"fileVersion": "4.700.19.56404"
}
},
"runtimeTargets": {
"runtimes/win/lib/netcoreapp2.0/System.Diagnostics.PerformanceCounter.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "4.0.2.0",
"fileVersion": "4.700.19.56404"
}
}
},
"System.Diagnostics.Tracing/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.DirectoryServices/4.7.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"System.IO.FileSystem.AccessControl": "4.7.0",
"System.Security.AccessControl": "6.0.0",
"System.Security.Permissions": "6.0.0",
"System.Security.Principal.Windows": "4.7.0"
},
"runtime": {
"lib/netstandard2.0/System.DirectoryServices.dll": {
"assemblyVersion": "4.0.1.0",
"fileVersion": "4.700.19.56404"
}
},
"runtimeTargets": {
"runtimes/win/lib/netcoreapp2.0/System.DirectoryServices.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "4.0.1.0",
"fileVersion": "4.700.19.56404"
}
}
},
"System.Drawing.Common/6.0.0": {
"dependencies": {
"Microsoft.Win32.SystemEvents": "6.0.0"
},
"runtime": {
"lib/net6.0/System.Drawing.Common.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
},
"runtimeTargets": {
"runtimes/unix/lib/net6.0/System.Drawing.Common.dll": {
"rid": "unix",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
},
"runtimes/win/lib/net6.0/System.Drawing.Common.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
"System.Globalization/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.IO/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.IO.Compression/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"System.Buffers": "4.3.0",
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.IO": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Runtime.Handles": "4.3.0",
"System.Runtime.InteropServices": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Threading": "4.3.0",
"System.Threading.Tasks": "4.3.0",
"runtime.native.System": "4.3.0",
"runtime.native.System.IO.Compression": "4.3.0"
}
},
"System.IO.FileSystem.AccessControl/4.7.0": {
"dependencies": {
"System.Security.AccessControl": "6.0.0",
"System.Security.Principal.Windows": "4.7.0"
}
},
"System.Reflection/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0",
"System.IO": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Primitives/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Resources.ResourceManager/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Globalization": "4.3.0",
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0"
}
},
"System.Runtime.Extensions/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime.Handles/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime.InteropServices/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Reflection": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Handles": "4.3.0"
}
},
"System.Security.AccessControl/6.0.0": {},
"System.Security.Cryptography.ProtectedData/6.0.0": {
"runtime": {
"lib/net6.0/System.Security.Cryptography.ProtectedData.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
},
"runtimeTargets": {
"runtimes/win/lib/net6.0/System.Security.Cryptography.ProtectedData.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
"System.Security.Permissions/6.0.0": {
"dependencies": {
"System.Security.AccessControl": "6.0.0",
"System.Windows.Extensions": "6.0.0"
},
"runtime": {
"lib/net6.0/System.Security.Permissions.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
"System.Security.Principal.Windows/4.7.0": {},
"System.Text.Encoding/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Text.Encoding.CodePages/4.7.1": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1"
}
},
"System.Threading/4.3.0": {
"dependencies": {
"System.Runtime": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.Threading.Tasks/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "3.1.1",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Windows.Extensions/6.0.0": {
"dependencies": {
"System.Drawing.Common": "6.0.0"
},
"runtime": {
"lib/net6.0/System.Windows.Extensions.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
},
"runtimeTargets": {
"runtimes/win/lib/net6.0/System.Windows.Extensions.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
"WixToolset.Core/5.0.2": {
"dependencies": {
"System.IO.FileSystem.AccessControl": "4.7.0",
"System.Text.Encoding.CodePages": "4.7.1",
"WixToolset.Data": "5.0.2",
"WixToolset.Extensibility": "5.0.2",
"WixToolset.Versioning": "5.0.2"
},
"runtime": {
"lib/netstandard2.0/WixToolset.Core.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.2.0"
}
}
},
"WixToolset.Data/5.0.2": {
"dependencies": {
"System.IO.Compression": "4.3.0"
},
"runtime": {
"lib/netstandard2.0/WixToolset.Data.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.2.0"
}
}
},
"WixToolset.Extensibility/5.0.2": {
"dependencies": {
"WixToolset.Data": "5.0.2"
},
"runtime": {
"lib/netstandard2.0/WixToolset.Extensibility.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.2.0"
}
}
},
"WixToolset.Versioning/5.0.2": {
"runtime": {
"lib/netstandard2.0/WixToolset.Versioning.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.2.0"
}
}
}
}
},
"libraries": {
"heat/5.0.2": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.Build.Tasks.Git/1.1.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==",
"path": "microsoft.build.tasks.git/1.1.1",
"hashPath": "microsoft.build.tasks.git.1.1.1.nupkg.sha512"
},
"Microsoft.NETCore.Platforms/3.1.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-RmINcaqiEkawM9C8oxFMN/CZmn1fGKWVsosbSY/8ARUNdHqV47hqhPVbrG3qUqLaRQI5w4HuqFOqrbhoSWcH6w==",
"path": "microsoft.netcore.platforms/3.1.1",
"hashPath": "microsoft.netcore.platforms.3.1.1.nupkg.sha512"
},
"Microsoft.NETCore.Targets/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
"path": "microsoft.netcore.targets/1.1.0",
"hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
},
"Microsoft.SourceLink.Common/1.1.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==",
"path": "microsoft.sourcelink.common/1.1.1",
"hashPath": "microsoft.sourcelink.common.1.1.1.nupkg.sha512"
},
"Microsoft.SourceLink.GitHub/1.1.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==",
"path": "microsoft.sourcelink.github/1.1.1",
"hashPath": "microsoft.sourcelink.github.1.1.1.nupkg.sha512"
},
"Microsoft.Win32.Registry/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==",
"path": "microsoft.win32.registry/4.7.0",
"hashPath": "microsoft.win32.registry.4.7.0.nupkg.sha512"
},
"Microsoft.Win32.SystemEvents/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-hqTM5628jSsQiv+HGpiq3WKBl2c8v1KZfby2J6Pr7pEPlK9waPdgEO6b8A/+/xn/yZ9ulv8HuqK71ONy2tg67A==",
"path": "microsoft.win32.systemevents/6.0.0",
"hashPath": "microsoft.win32.systemevents.6.0.0.nupkg.sha512"
},
"runtime.native.System/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
"path": "runtime.native.system/4.3.0",
"hashPath": "runtime.native.system.4.3.0.nupkg.sha512"
},
"runtime.native.System.IO.Compression/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
"path": "runtime.native.system.io.compression/4.3.0",
"hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512"
},
"System.Buffers/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
"path": "system.buffers/4.3.0",
"hashPath": "system.buffers.4.3.0.nupkg.sha512"
},
"System.Collections/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
"path": "system.collections/4.3.0",
"hashPath": "system.collections.4.3.0.nupkg.sha512"
},
"System.Configuration.ConfigurationManager/6.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-jXw9MlUu/kRfEU0WyTptAVueupqIeE3/rl0EZDMlf8pcvJnitQ8HeVEp69rZdaStXwTV72boi/Bhw8lOeO+U2w==",
"path": "system.configuration.configurationmanager/6.0.1",
"hashPath": "system.configuration.configurationmanager.6.0.1.nupkg.sha512"
},
"System.Diagnostics.Debug/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
"path": "system.diagnostics.debug/4.3.0",
"hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512"
},
"System.Diagnostics.PerformanceCounter/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kE9szT4i3TYT9bDE/BPfzg9/BL6enMiZlcUmnUEBrhRtxWvurKoa8qhXkLTRhrxMzBqaDleWlRfIPE02tulU+w==",
"path": "system.diagnostics.performancecounter/4.7.0",
"hashPath": "system.diagnostics.performancecounter.4.7.0.nupkg.sha512"
},
"System.Diagnostics.Tracing/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
"path": "system.diagnostics.tracing/4.3.0",
"hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512"
},
"System.DirectoryServices/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NRENC4ulDamI4DQtrYybxtQU3qnhGSTUdEKJkLyctHXY4RqNyS/egZpB9z8/CnFCiaQZmwLlqxfBmw80VlKBTA==",
"path": "system.directoryservices/4.7.0",
"hashPath": "system.directoryservices.4.7.0.nupkg.sha512"
},
"System.Drawing.Common/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NfuoKUiP2nUWwKZN6twGqXioIe1zVD0RIj2t976A+czLHr2nY454RwwXs6JU9Htc6mwqL6Dn/nEL3dpVf2jOhg==",
"path": "system.drawing.common/6.0.0",
"hashPath": "system.drawing.common.6.0.0.nupkg.sha512"
},
"System.Globalization/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
"path": "system.globalization/4.3.0",
"hashPath": "system.globalization.4.3.0.nupkg.sha512"
},
"System.IO/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
"path": "system.io/4.3.0",
"hashPath": "system.io.4.3.0.nupkg.sha512"
},
"System.IO.Compression/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
"path": "system.io.compression/4.3.0",
"hashPath": "system.io.compression.4.3.0.nupkg.sha512"
},
"System.IO.FileSystem.AccessControl/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-vMToiarpU81LR1/KZtnT7VDPvqAZfw9oOS5nY6pPP78nGYz3COLsQH3OfzbR+SjTgltd31R6KmKklz/zDpTmzw==",
"path": "system.io.filesystem.accesscontrol/4.7.0",
"hashPath": "system.io.filesystem.accesscontrol.4.7.0.nupkg.sha512"
},
"System.Reflection/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
"path": "system.reflection/4.3.0",
"hashPath": "system.reflection.4.3.0.nupkg.sha512"
},
"System.Reflection.Primitives/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
"path": "system.reflection.primitives/4.3.0",
"hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
},
"System.Resources.ResourceManager/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
"path": "system.resources.resourcemanager/4.3.0",
"hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
},
"System.Runtime/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
"path": "system.runtime/4.3.0",
"hashPath": "system.runtime.4.3.0.nupkg.sha512"
},
"System.Runtime.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
"path": "system.runtime.extensions/4.3.0",
"hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512"
},
"System.Runtime.Handles/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
"path": "system.runtime.handles/4.3.0",
"hashPath": "system.runtime.handles.4.3.0.nupkg.sha512"
},
"System.Runtime.InteropServices/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
"path": "system.runtime.interopservices/4.3.0",
"hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512"
},
"System.Security.AccessControl/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==",
"path": "system.security.accesscontrol/6.0.0",
"hashPath": "system.security.accesscontrol.6.0.0.nupkg.sha512"
},
"System.Security.Cryptography.ProtectedData/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rp1gMNEZpvx9vP0JW0oHLxlf8oSiQgtno77Y4PLUBjSiDYoD77Y8uXHr1Ea5XG4/pIKhqAdxZ8v8OTUtqo9PeQ==",
"path": "system.security.cryptography.protecteddata/6.0.0",
"hashPath": "system.security.cryptography.protecteddata.6.0.0.nupkg.sha512"
},
"System.Security.Permissions/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-T/uuc7AklkDoxmcJ7LGkyX1CcSviZuLCa4jg3PekfJ7SU0niF0IVTXwUiNVP9DSpzou2PpxJ+eNY2IfDM90ZCg==",
"path": "system.security.permissions/6.0.0",
"hashPath": "system.security.permissions.6.0.0.nupkg.sha512"
},
"System.Security.Principal.Windows/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ==",
"path": "system.security.principal.windows/4.7.0",
"hashPath": "system.security.principal.windows.4.7.0.nupkg.sha512"
},
"System.Text.Encoding/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
"path": "system.text.encoding/4.3.0",
"hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
},
"System.Text.Encoding.CodePages/4.7.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-i2fOvznVVgOOTLUz8FgSap/MsR98I4Iaoz99VXcOW/e7Y2OdY42zhYpBYpZyivk5alYY/UsOWAVswhtjxceodA==",
"path": "system.text.encoding.codepages/4.7.1",
"hashPath": "system.text.encoding.codepages.4.7.1.nupkg.sha512"
},
"System.Threading/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
"path": "system.threading/4.3.0",
"hashPath": "system.threading.4.3.0.nupkg.sha512"
},
"System.Threading.Tasks/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
"path": "system.threading.tasks/4.3.0",
"hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
},
"System.Windows.Extensions/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-IXoJOXIqc39AIe+CIR7koBtRGMiCt/LPM3lI+PELtDIy9XdyeSrwXFdWV9dzJ2Awl0paLWUaknLxFQ5HpHZUog==",
"path": "system.windows.extensions/6.0.0",
"hashPath": "system.windows.extensions.6.0.0.nupkg.sha512"
},
"WixToolset.Core/5.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Ena+g6CbJ8653OvrogD4Z4sVOEpB1MdYcWcHFzOZ5usVeB5dJpcxeUePBXu1XxV6PaE+rZgVfyrRaCwvjlp2pg==",
"path": "wixtoolset.core/5.0.2",
"hashPath": "wixtoolset.core.5.0.2.nupkg.sha512"
},
"WixToolset.Data/5.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-0TLb0lBFDUKNZ76SeEX4u0UdJuPBRt6gC8zaYzH6pV0M/KRysHA7iU2sSTUqDZFqN96H052gZ9SaSjnitF2BfA==",
"path": "wixtoolset.data/5.0.2",
"hashPath": "wixtoolset.data.5.0.2.nupkg.sha512"
},
"WixToolset.Extensibility/5.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-q9r8mXxqPirSyIk7hmV6FAdO225gpC1/W2LVlJUTZ0EKVpTmXnd6lOSqFks15GsWWuTUjzzRsz50Qzqa5SRPiA==",
"path": "wixtoolset.extensibility/5.0.2",
"hashPath": "wixtoolset.extensibility.5.0.2.nupkg.sha512"
},
"WixToolset.Versioning/5.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-q3zBjplqMji8Ih1SH5W0f4HY3/PLSLR3BX0LkbJsRpHWY3nY23MJ5W+YRkne5b1XR2qcfg3NFDcIiR4XJN5dBg==",
"path": "wixtoolset.versioning/5.0.2",
"hashPath": "wixtoolset.versioning.5.0.2.nupkg.sha512"
}
}
}

Binary file not shown.

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<configuration>
<runtime>
<loadFromRemoteSources enabled="true"/>
<AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false" />
</runtime>
</configuration>

View File

@@ -0,0 +1,13 @@
{
"runtimeOptions": {
"tfm": "net6.0",
"rollForward": "LatestMajor",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "6.0.0"
},
"configProperties": {
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -17,6 +17,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Version", "..\src\common\ve
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EtwTrace", "..\src\common\Telemetry\EtwTrace\EtwTrace.vcxproj", "{8F021B46-362B-485C-BFBA-CCF83E820CBD}"
EndProject
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PowerToysInstallerVNext", "PowerToysSetupVNext\PowerToysInstallerVNext.wixproj", "{B6E94700-DF38-41F6-A3FD-18B69674AB1E}"
EndProject
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PowerToysBootstrapperVNext", "PowerToysSetupVNext\PowerToysBootstrapperVNext.wixproj", "{DA4E9744-80BE-424C-B0F5-AFD8757DB575}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM64 = Debug|ARM64
@@ -78,6 +82,22 @@ Global
{8F021B46-362B-485C-BFBA-CCF83E820CBD}.Release|ARM64.Build.0 = Release|ARM64
{8F021B46-362B-485C-BFBA-CCF83E820CBD}.Release|x64.ActiveCfg = Release|x64
{8F021B46-362B-485C-BFBA-CCF83E820CBD}.Release|x64.Build.0 = Release|x64
{B6E94700-DF38-41F6-A3FD-18B69674AB1E}.Debug|ARM64.ActiveCfg = Debug|ARM64
{B6E94700-DF38-41F6-A3FD-18B69674AB1E}.Debug|ARM64.Build.0 = Debug|ARM64
{B6E94700-DF38-41F6-A3FD-18B69674AB1E}.Debug|x64.ActiveCfg = Debug|x64
{B6E94700-DF38-41F6-A3FD-18B69674AB1E}.Debug|x64.Build.0 = Debug|x64
{B6E94700-DF38-41F6-A3FD-18B69674AB1E}.Release|ARM64.ActiveCfg = Release|ARM64
{B6E94700-DF38-41F6-A3FD-18B69674AB1E}.Release|ARM64.Build.0 = Release|ARM64
{B6E94700-DF38-41F6-A3FD-18B69674AB1E}.Release|x64.ActiveCfg = Release|x64
{B6E94700-DF38-41F6-A3FD-18B69674AB1E}.Release|x64.Build.0 = Release|x64
{DA4E9744-80BE-424C-B0F5-AFD8757DB575}.Debug|ARM64.ActiveCfg = Debug|ARM64
{DA4E9744-80BE-424C-B0F5-AFD8757DB575}.Debug|ARM64.Build.0 = Debug|ARM64
{DA4E9744-80BE-424C-B0F5-AFD8757DB575}.Debug|x64.ActiveCfg = Debug|x64
{DA4E9744-80BE-424C-B0F5-AFD8757DB575}.Debug|x64.Build.0 = Debug|x64
{DA4E9744-80BE-424C-B0F5-AFD8757DB575}.Release|ARM64.ActiveCfg = Release|ARM64
{DA4E9744-80BE-424C-B0F5-AFD8757DB575}.Release|ARM64.Build.0 = Release|ARM64
{DA4E9744-80BE-424C-B0F5-AFD8757DB575}.Release|x64.ActiveCfg = Release|x64
{DA4E9744-80BE-424C-B0F5-AFD8757DB575}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@@ -57,7 +57,32 @@ call powershell.exe -NonInteractive -executionpolicy Unrestricted -File $(MSBuil
call move /Y ..\..\..\WinAppSDK.wxs.bk ..\..\..\WinAppSDK.wxs
call move /Y ..\..\..\WinUI3Applications.wxs.bk ..\..\..\WinUI3Applications.wxs
call move /Y ..\..\..\Workspaces.wxs.bk ..\..\..\Workspaces.wxs
</PostBuildEvent>
call move /Y ..\..\..\..\PowerToysSetupVNext\AdvancedPaste.wxs.bk ..\..\..\..\PowerToysSetupVNext\AdvancedPaste.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\Awake.wxs.bk ..\..\..\..\PowerToysSetupVNext\Awake.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\BaseApplications.wxs.bk ..\..\..\..\PowerToysSetupVNext\BaseApplications.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\ColorPicker.wxs.bk ..\..\..\..\PowerToysSetupVNext\ColorPicker.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\Core.wxs.bk ..\..\..\..\PowerToysSetupVNext\Core.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\EnvironmentVariables.wxs.bk ..\..\..\..\PowerToysSetupVNext\EnvironmentVariables.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\FileExplorerPreview.wxs.bk ..\..\..\..\PowerToysSetupVNext\FileExplorerPreview.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\FileLocksmith.wxs.bk ..\..\..\..\PowerToysSetupVNext\FileLocksmith.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\Hosts.wxs.bk ..\..\..\..\PowerToysSetupVNext\Hosts.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\ImageResizer.wxs.bk ..\..\..\..\PowerToysSetupVNext\ImageResizer.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\KeyboardManager.wxs.bk ..\..\..\..\PowerToysSetupVNext\KeyboardManager.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\MouseWithoutBorders.wxs.bk ..\..\..\..\PowerToysSetupVNext\MouseWithoutBorders.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\NewPlus.wxs.bk ..\..\..\..\PowerToysSetupVNext\NewPlus.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\Peek.wxs.bk ..\..\..\..\PowerToysSetupVNext\Peek.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\PowerRename.wxs.bk ..\..\..\..\PowerToysSetupVNext\PowerRename.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\Product.wxs.bk ..\..\..\..\PowerToysSetupVNext\Product.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\RegistryPreview.wxs.bk ..\..\..\..\PowerToysSetupVNext\RegistryPreview.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\Resources.wxs.bk ..\..\..\..\PowerToysSetupVNext\Resources.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\Run.wxs.bk ..\..\..\..\PowerToysSetupVNext\Run.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\Settings.wxs.bk ..\..\..\..\PowerToysSetupVNext\Settings.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\ShortcutGuide.wxs.bk ..\..\..\..\PowerToysSetupVNext\ShortcutGuide.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\Tools.wxs.bk ..\..\..\..\PowerToysSetupVNext\Tools.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\WinAppSDK.wxs.bk ..\..\..\..\PowerToysSetupVNext\WinAppSDK.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\WinUI3Applications.wxs.bk ..\..\..\..\PowerToysSetupVNext\WinUI3Applications.wxs
call move /Y ..\..\..\..\PowerToysSetupVNext\Workspaces.wxs.bk ..\..\..\..\PowerToysSetupVNext\Workspaces.wxs
</PostBuildEvent>
</PropertyGroup>
<PropertyGroup>
<Name>PowerToysInstaller</Name>

View File

@@ -1,3 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
</packages>

View File

@@ -10,8 +10,8 @@ SET ClearDevCommandPromptEnvVars=false
rem In case of Release we should not use Debug CRT in VCRT forwarders
msbuild !PTRoot!\src\modules\previewpane\MonacoPreviewHandler\MonacoPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
msbuild !PTRoot!\src\modules\previewpane\MarkdownPreviewHandler\MarkdownPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
@REM msbuild !PTRoot!\src\modules\previewpane\MarkdownPreviewHandler\MarkdownPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
msbuild !PTRoot!\src\modules\previewpane\SvgPreviewHandler\SvgPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
@REM msbuild !PTRoot!\src\modules\previewpane\SvgPreviewHandler\SvgPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
msbuild !PTRoot!\src\modules\previewpane\SvgThumbnailProvider\SvgThumbnailProvider.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
@REM msbuild !PTRoot!\src\modules\previewpane\SvgThumbnailProvider\SvgThumbnailProvider.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml

View File

@@ -80,8 +80,35 @@
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetup\Workspaces.wxs"" ""$(ProjectDir)..\PowerToysSetup\Workspaces.wxs.bk""""
if not "$(NormalizedPerUserValue)" == "true" call powershell.exe -NonInteractive -executionpolicy Unrestricted -File ..\PowerToysSetup\generateAllFileComponents.ps1 -platform $(Platform)
if "$(NormalizedPerUserValue)" == "true" call powershell.exe -NonInteractive -executionpolicy Unrestricted -File ..\PowerToysSetup\generateAllFileComponents.ps1 -platform $(Platform) -installscopeperuser $(NormalizedPerUserValue)
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\AdvancedPaste.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\AdvancedPaste.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\Awake.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\Awake.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\BaseApplications.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\BaseApplications.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\ColorPicker.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\ColorPicker.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\Core.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\Core.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\EnvironmentVariables.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\EnvironmentVariables.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\FileExplorerPreview.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\FileExplorerPreview.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\FileLocksmith.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\FileLocksmith.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\Hosts.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\Hosts.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\ImageResizer.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\ImageResizer.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\KeyboardManager.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\KeyboardManager.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\MouseWithoutBorders.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\MouseWithoutBorders.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\NewPlus.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\NewPlus.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\Peek.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\Peek.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\PowerRename.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\PowerRename.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\Product.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\Product.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\RegistryPreview.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\RegistryPreview.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\Resources.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\Resources.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\Run.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\Run.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\Settings.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\Settings.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\ShortcutGuide.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\ShortcutGuide.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\Tools.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\Tools.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\WinAppSDK.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\WinAppSDK.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\WinUI3Applications.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\WinUI3Applications.wxs.bk""""
call cmd /C "copy ""$(ProjectDir)..\PowerToysSetupVNext\Workspaces.wxs"" ""$(ProjectDir)..\PowerToysSetupVNext\Workspaces.wxs.bk""""
if not "$(NormalizedPerUserValue)" == "true" call powershell.exe -NonInteractive -executionpolicy Unrestricted -File ..\PowerToysSetupVNext\generateAllFileComponents.ps1 -platform $(Platform)
if "$(NormalizedPerUserValue)" == "true" call powershell.exe -NonInteractive -executionpolicy Unrestricted -File ..\PowerToysSetupVNext\generateAllFileComponents.ps1 -platform $(Platform) -installscopeperuser $(NormalizedPerUserValue)
</Command>
<Message>Backing up original files and populating .NET and WPF Runtime dependencies </Message>
<Message>Backing up original files and populating .NET and WPF Runtime dependencies for WiX3 based installer</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<PropertyGroup Condition="'$(RunBuildEvents)'=='false'">

View File

@@ -0,0 +1,27 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define AdvancedPasteAssetsFiles=?>
<?define AdvancedPasteAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\AdvancedPaste\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<Directory Id="AdvancedPasteAssetsFolder" Name="AdvancedPaste" />
</DirectoryRef>
<DirectoryRef Id="AdvancedPasteAssetsFolder" FileSource="$(var.AdvancedPasteAssetsFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--AdvancedPasteAssetsFiles_Component_Def-->
</DirectoryRef>
<ComponentGroup Id="AdvancedPasteComponentGroup">
<Component Id="RemoveAdvancedPasteFolder" Guid="55AFE81D-F6BD-439A-A229-66AF5C360AB0" Directory="AdvancedPasteAssetsFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveAdvancedPasteFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderAdvancedPasteAssetsFolder" Directory="AdvancedPasteAssetsFolder" On="uninstall" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,30 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define AwakeImagesFiles=?>
<?define AwakeImagesFilesPath=$(var.BinDir)\Assets\Awake\?>
<Fragment>
<!-- Awake images -->
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="AwakeImagesFolder" Name="Awake" />
</DirectoryRef>
<DirectoryRef Id="AwakeImagesFolder" FileSource="$(var.AwakeImagesFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--AwakeImagesFiles_Component_Def-->
</DirectoryRef>
<ComponentGroup Id="AwakeComponentGroup">
<Component Id="RemoveAwakeFolder" Guid="95D7774C-69A3-48A3-B417-1BD9664BE974" Directory="INSTALLFOLDER">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveAwakeFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderAwakeImagesFolder" Directory="AwakeImagesFolder" On="uninstall" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,18 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define BaseApplicationsFiles=?>
<?define BaseApplicationsFilesPath=$(var.BinDir)\?>
<Fragment>
<DirectoryRef Id="INSTALLFOLDER">
<!-- Generated by generateFileComponents.ps1 -->
<!--BaseApplicationsFiles_Component_Def-->
</DirectoryRef>
<ComponentGroup Id="BaseApplicationsComponentGroup">
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,64 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define CmdPalBuildDir="$(var.BinDir)\WinUI3Apps\CmdPal\"?>
<Fragment>
<DirectoryRef Id="WinUI3AppsInstallFolder">
<Directory Id="CmdPalInstallFolder" Name="CmdPal">
<Directory Id="CmdPalDepsInstallFolder" Name="Dependencies">
<?if $(sys.BUILDARCH) = x64 ?>
<Directory Id="CmdPalDepsX64InstallFolder" Name="x64" />
<?else?>
<Directory Id="CmdPalDepsArm64InstallFolder" Name="arm64" />
<?endif?>
</Directory>
</Directory>
</DirectoryRef>
<DirectoryRef Id="CmdPalInstallFolder" FileSource="$(var.CmdPalBuildDir)AppPackages\Microsoft.CmdPal.UI_$(var.CmdPalVersion).0_Test">
<Component Id="Module_CmdPal" Guid="3A4942B2-1A86-4182-B3B4-65157365A980" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Module_CmdPal" Value="" KeyPath="yes" />
</RegistryKey>
<?if $(sys.BUILDARCH) = x64 ?>
<File Id="Microsoft.CmdPal.UI___var.CmdPalVersion_.0_x64.msix" Source="$(var.CmdPalBuildDir)AppPackages\Microsoft.CmdPal.UI_$(var.CmdPalVersion).0_Test\Microsoft.CmdPal.UI_$(var.CmdPalVersion).0_x64.msix" />
<?else?>
<File Id="Microsoft.CmdPal.UI___var.CmdPalVersion_.0_arm64.msix" Source="$(var.CmdPalBuildDir)AppPackages\Microsoft.CmdPal.UI_$(var.CmdPalVersion).0_Test\Microsoft.CmdPal.UI_$(var.CmdPalVersion).0_arm64.msix" />
<?endif?>
</Component>
</DirectoryRef>
<?if $(sys.BUILDARCH) = x64 ?>
<DirectoryRef Id="CmdPalDepsX64InstallFolder" FileSource="$(var.CmdPalBuildDir)AppPackages\Microsoft.CmdPal.UI_$(var.CmdPalVersion).0_Test\Dependencies\x64">
<Component Id="Module_CmdPal_Deps" Guid="C2790FC4-0665-4462-947A-D942A2AABFF0" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Module_CmdPal_Deps" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Microsoft.VCLibs.x64.14.00.Desktop.appx" Source="$(var.CmdPalBuildDir)AppPackages\Microsoft.CmdPal.UI_$(var.CmdPalVersion).0_Test\Dependencies\x64\Microsoft.VCLibs.x64.14.00.Desktop.appx" />
</Component>
</DirectoryRef>
<?else?>
<DirectoryRef Id="CmdPalDepsArm64InstallFolder" FileSource="$(var.CmdPalBuildDir)AppPackages\Microsoft.CmdPal.UI_$(var.CmdPalVersion).0_Test\Dependencies\arm64">
<Component Id="Module_CmdPal_Deps" Guid="C2790FC4-0665-4462-947A-D942A2AABFF0" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Module_CmdPal_Deps" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Microsoft.VCLibs.ARM64.14.00.Desktop.appx" Source="$(var.CmdPalBuildDir)AppPackages\Microsoft.CmdPal.UI_$(var.CmdPalVersion).0_Test\Dependencies\arm64\Microsoft.VCLibs.ARM64.14.00.Desktop.appx" />
</Component>
</DirectoryRef>
<?endif?>
<ComponentGroup Id="CmdPalComponentGroup">
<Component Id="RemoveCmdPalFolder" Guid="2DF90C08-CC75-4245-A14E-B82904636C53" Directory="INSTALLFOLDER">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveCmdPalFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveCmdPalInstallDirFolder" Directory="CmdPalInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveCmdPalDepsInstallDirFolder" Directory="CmdPalDepsInstallFolder" On="uninstall" />
<?if $(sys.BUILDARCH) = x64 ?>
<RemoveFolder Id="RemoveCmdPalDepsX64InstallDirFolder" Directory="CmdPalDepsX64InstallFolder" On="uninstall" />
<?else?>
<RemoveFolder Id="RemoveCmdPalDepsArm64InstallDirFolder" Directory="CmdPalDepsArm64InstallFolder" On="uninstall" />
<?endif?>
</Component>
<ComponentRef Id="Module_CmdPal" />
<ComponentRef Id="Module_CmdPal_Deps" />
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,29 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define ColorPickerAssetsFiles=?>
<?define ColorPickerAssetsFilesPath=$(var.BinDir)Assets\ColorPicker\?>
<Fragment>
<!-- Color Picker -->
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="ColorPickerAssetsFolder" Name="ColorPicker" />
</DirectoryRef>
<!-- Color Picker Resources -->
<DirectoryRef Id="ColorPickerAssetsFolder" FileSource="$(var.ColorPickerAssetsFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--ColorPickerAssetsFiles_Component_Def-->
</DirectoryRef>
<ComponentGroup Id="ColorPickerComponentGroup">
<Component Id="RemoveColorPickerFolder" Guid="18C0C18C-F38A-4C88-B22C-9222F3A5B2EB" Directory="INSTALLFOLDER">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveColorPickerFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderColorPickerAssetsFolder" Directory="ColorPickerAssetsFolder" On="uninstall" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,58 @@
<Include>
<!-- Names of folders and projects -->
<?define FancyZonesProjectName="FancyZones"?>
<?define ImageResizerProjectName="ImageResizer"?>
<?define KeyboardManagerProjectName="KeyboardManager"?>
<?define PowerAccentProjectName="PowerAccent"?>
<?define PowerRenameProjectName="PowerRename"?>
<?define FileLocksmithProjectName="FileLocksmith"?>
<?define ColorPickerProjectName="ColorPicker"?>
<?define PowerOCRProjectName="PowerOCR"?>
<?define AwakeProjectName="Awake"?>
<?define MouseUtilsProjectName="MouseUtils"?>
<?define AlwaysOnTopProjectName="AlwaysOnTop"?>
<?define MeasureToolProjectName="MeasureTool"?>
<?define HostsProjectName="Hosts"?>
<?define MouseWithoutBordersProjectName="MouseWithoutBorders"?>
<?define AdvancedPasteProjectName="AdvancedPaste"?>
<?define RegistryPreviewProjectName="RegistryPreview"?>
<?define PeekProjectName="Peek"?>
<?define WorkspacesProjectName="Workspaces"?>
<?define RepoDir="$(var.ProjectDir)..\..\" ?>
<?if $(var.Platform) = x64?>
<?define PowerToysPlatform="x64"?>
<?define PlatformProgramFiles="[ProgramFiles64Folder]"?>
<?define PlatformLK="x64" ?>
<?define BinDir="$(var.RepoDir)x64\$(var.Configuration)\" ?>
<?else?>
<!-- stable WIX 3 doesn't support ARM64, so we build installers as x86 -->
<?define PowerToysPlatform="ARM64"?>
<!--TODO: define to ARM64 Program files once it's available-->
<?define PlatformProgramFiles="[ProgramFiles6432Folder]"?>
<?define PlatformLK="arm64" ?>
<?define BinDir="$(var.RepoDir)ARM64\$(var.Configuration)\" ?>
<?endif?>
<?if $(var.PerUser) = "true"?>
<?define PerMachineYesNo="no"?>
<?define MSIPath="UserSetup"?>
<?define MSIName="PowerToysUserSetupVNext-$(var.Version)-$(var.PowerToysPlatform).msi"?>
<?define DefaultInstallDir="LocalAppDataFolder" ?>
<?define RegistryScope="HKCU" ?>
<?define InstallScope="perUser" ?>
<?define InstallPrivileges="limited" ?>
<?define UpgradeCodeGUID="D8B559DB-4C98-487A-A33F-50A8EEE42726" ?>
<?else?>
<?define PerMachineYesNo="yes"?>
<?define MSIPath="MachineSetup"?>
<?define MSIName="PowerToysSetupVNext-$(var.Version)-$(var.PowerToysPlatform).msi"?>
<?define DefaultInstallDir="ProgramFiles64Folder" ?>
<?define RegistryScope="HKLM" ?>
<?define InstallScope="perMachine" ?>
<?define InstallPrivileges="elevated" ?>
<?define UpgradeCodeGUID="42B84BF7-5FBF-473B-9C8B-049DC16F7708" ?>
<?endif?>
<?define BinX32Dir="$(var.RepoDir)x86\$(var.Configuration)\" ?>
</Include>

View File

@@ -0,0 +1,122 @@
<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>
<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="&quot;[INSTALLFOLDER]PowerToys.exe&quot; &quot;%1&quot;" />
</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>
<DirectoryRef Id="DSCModulesReferenceFolder">
<Component Id="PowerToysDSCReference" Guid="40869ACB-0BEB-4911-AE41-5E73BC1586A9" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="DSCModulesReference" Value="" KeyPath="yes" />
</RegistryKey>
<File Source="$(var.RepoDir)\src\dsc\Microsoft.PowerToys.Configure\Generated\Microsoft.PowerToys.Configure\$(var.Version).0\Microsoft.PowerToys.Configure.psd1" Id="PTConfReference.psd1" />
<File Source="$(var.RepoDir)\src\dsc\Microsoft.PowerToys.Configure\Generated\Microsoft.PowerToys.Configure\$(var.Version).0\Microsoft.PowerToys.Configure.psm1" Id="PTConfReference.psm1" />
</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="RemoveDSCModulesReferenceFolder" Directory="DSCModulesReferenceFolder" 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" />
<ComponentRef Id="PowerToysDSCReference" />
<?if $(var.PerUser) = "false" ?>
<ComponentRef Id="PowerToysDSC" />
<?endif?>
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,28 @@
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Fragment>
<UI>
<Dialog Id="PTInstallDirDlg" Width="370" Height="270" Title="!(loc.InstallDirDlg_Title)">
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" />
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
<Publish Event="SpawnDialog" Value="CancelDlg" />
</Control>
<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.InstallDirDlgDescription)" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.InstallDirDlgTitle)" />
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.InstallDirDlgBannerBitmap)" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="FolderLabel" Type="Text" X="20" Y="60" Width="290" Height="30" NoPrefix="yes" Text="!(loc.InstallDirDlgFolderLabel)" />
<Control Id="Folder" Type="PathEdit" X="20" Y="100" Width="320" Height="18" Property="WIXUI_INSTALLDIR" Indirect="yes" />
<Control Id="ChangeFolder" Type="PushButton" X="20" Y="120" Width="56" Height="17" Text="!(loc.InstallDirDlgChange)" />
<Control Id="DesktopShortcutCheckBox" Type="CheckBox" X="20" Y="160" Width="290" Height="17" Property="INSTALLDESKTOPSHORTCUT" CheckBoxValue="1" Text="Create a shortcut for [ProductName] on the desktop." />
<Control Id="ScheduledTaskCheckBox" Type="CheckBox" X="20" Y="180" Width="330" Height="17" Property="CREATESCHEDULEDTASK" CheckBoxValue="1" Text="Automatically start [ProductName] at logon." />
</Dialog>
</UI>
</Fragment>
</Wix>

View File

@@ -0,0 +1,28 @@
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Fragment>
<UI>
<Dialog Id="PTLicenseDlg" Width="370" Height="270" Title="!(loc.LicenseAgreementDlg_Title)">
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.LicenseAgreementDlgBannerBitmap)" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}[ProductName] License" />
<Control Id="Print" Type="PushButton" X="112" Y="243" Width="56" Height="17" Text="!(loc.WixUIPrint)">
<Publish Event="DoAction" Value="WixUIPrintEula_$(sys.BUILDARCHSHORT)" />
</Control>
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)">
<Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg" Condition="!(wix.WixUICostingPopupOptOut) OR CostingComplete = 1" />
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
<Publish Event="SpawnDialog" Value="CancelDlg" />
</Control>
<Control Id="LicenseText" Type="ScrollableText" X="20" Y="60" Width="330" Height="140" Sunken="yes" TabSkip="no">
<Text SourceFile="!(wix.WixUILicenseRtf)" />
</Control>
</Dialog>
</UI>
</Fragment>
</Wix>

View File

@@ -0,0 +1,77 @@
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
<!--
First-time install dialog sequence:
- WixUI_WelcomeDlg
- WixUI_LicenseAgreementDlg
- WixUI_PTInstallDirDlg
- WixUI_VerifyReadyDlg
- WixUI_DiskCostDlg
Maintenance dialog sequence:
- WixUI_MaintenanceWelcomeDlg
- WixUI_MaintenanceTypeDlg
- WixUI_PTInstallDirDlg
- WixUI_VerifyReadyDlg
Patch dialog sequence:
- WixUI_WelcomeDlg
- WixUI_VerifyReadyDlg
-->
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Fragment>
<UI Id="WixUI_PTInstallDir">
<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
<Property Id="WixUI_Mode" Value="InstallDir" />
<DialogRef Id="BrowseDlg" />
<DialogRef Id="DiskCostDlg" />
<DialogRef Id="ErrorDlg" />
<DialogRef Id="FatalError" />
<DialogRef Id="FilesInUse" />
<DialogRef Id="MsiRMFilesInUse" />
<DialogRef Id="PrepareDlg" />
<DialogRef Id="ProgressDlg" />
<DialogRef Id="ResumeDlg" />
<DialogRef Id="UserExit" />
<Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath_$(sys.BUILDARCHSHORT)" Order="3" />
<Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4" Condition="NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID&lt;&gt;&quot;1&quot;" />
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999" />
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="PTLicenseDlg" Condition="NOT Installed" />
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Condition="Installed AND PATCH" />
<Publish Dialog="PTLicenseDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" />
<Publish Dialog="PTLicenseDlg" Control="Next" Event="NewDialog" Value="PTInstallDirDlg" />
<Publish Dialog="PTInstallDirDlg" Control="Back" Event="NewDialog" Value="PTLicenseDlg" />
<Publish Dialog="PTInstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1" />
<Publish Dialog="PTInstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath_$(sys.BUILDARCHSHORT)" Order="2" Condition="NOT WIXUI_DONTVALIDATEPATH" />
<Publish Dialog="PTInstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3" Condition="NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID&lt;&gt;&quot;1&quot;" />
<Publish Dialog="PTInstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4" Condition="WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID=&quot;1&quot;" />
<Publish Dialog="PTInstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1" />
<Publish Dialog="PTInstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2" />
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="PTInstallDirDlg" Order="1" Condition="NOT Installed" />
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2" Condition="Installed AND NOT PATCH" />
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2" Condition="Installed AND PATCH" />
<Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg" />
<Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg" />
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg" />
<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg" />
</UI>
<UIRef Id="WixUI_Common" />
</Fragment>
</Wix>

View File

@@ -0,0 +1,27 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define EnvironmentVariablesAssetsFiles=?>
<?define EnvironmentVariablesAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\EnvironmentVariables\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<Directory Id="EnvironmentVariablesAssetsFolder" Name="EnvironmentVariables" />
</DirectoryRef>
<DirectoryRef Id="EnvironmentVariablesAssetsFolder" FileSource="$(var.EnvironmentVariablesAssetsFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--EnvironmentVariablesAssetsFiles_Component_Def-->
</DirectoryRef>
<ComponentGroup Id="EnvironmentVariablesComponentGroup">
<Component Id="RemoveEnvironmentVariablesFolder" Guid="B62A779D-38BA-46B2-859D-9D242D9B0CC1" Directory="EnvironmentVariablesAssetsFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveEnvironmentVariablesFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderEnvironmentVariablesAssetsFolder" Directory="EnvironmentVariablesAssetsFolder" On="uninstall" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,39 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define MonacoPreviewHandlerMonacoAssetsFiles=?>
<?define MonacoPreviewHandlerMonacoAssetsFilesPath=$(var.BinDir)Assets\Monaco\?>
<?define MonacoPreviewHandlerCustomLanguagesFiles=?>
<?define MonacoPreviewHandlerCustomLanguagesFilesPath=$(var.BinDir)Assets\Monaco\customLanguages\?>
<Fragment>
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="MonacoAssetsFolder" Name="Monaco">
<Directory Id="MonacoPreviewHandlerMonacoCustomLanguagesFolder" Name="customLanguages" />
<Directory Id="MonacoPreviewHandlerMonacoSRCFolder" Name="monacoSRC" />
</Directory>
</DirectoryRef>
<DirectoryRef Id="MonacoAssetsFolder" FileSource="$(var.MonacoPreviewHandlerMonacoAssetsFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--MonacoPreviewHandlerMonacoAssetsFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="MonacoPreviewHandlerMonacoCustomLanguagesFolder" FileSource="$(var.MonacoPreviewHandlerCustomLanguagesFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--MonacoPreviewHandlerCustomLanguagesFiles_Component_Def-->
</DirectoryRef>
<ComponentGroup Id="FileExplorerPreviewComponentGroup">
<Component Id="RemoveFileExplorerPreviewFolder" Guid="4AB83E58-17F1-41AF-B67F-F6C36EFED28D" Directory="MonacoAssetsFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveFileExplorerPreviewFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveMonacoAssetsFolder" Directory="MonacoAssetsFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderMonacoPreviewHandlerCustomLanguagesFolder" Directory="MonacoPreviewHandlerMonacoCustomLanguagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderMonacoPreviewHandlerMonacoSRCFolder" Directory="MonacoPreviewHandlerMonacoSRCFolder" On="uninstall" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,43 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define FileLocksmithAssetsFiles=?>
<?define FileLocksmithAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\FileLocksmith\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<Directory Id="FileLocksmithAssetsInstallFolder" Name="FileLocksmith" />
</DirectoryRef>
<DirectoryRef Id="FileLocksmithAssetsInstallFolder" FileSource="$(var.FileLocksmithAssetsFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--FileLocksmithAssetsFiles_Component_Def-->
<!-- !Warning! Make sure to change Component Guid if you update something here -->
<Component Id="Module_FileLocksmith" Guid="108D3EC1-E6E0-4E81-88EF-25966133CB41" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\CLSID\{84D68575-E186-46AD-B0CB-BAEB45EE29C0}">
<RegistryValue Type="string" Value="File Locksmith Shell Extension" />
<RegistryValue Type="string" Name="ContextMenuOptIn" Value="" />
<RegistryValue Type="string" Key="InprocServer32" Value="[WinUI3AppsInstallFolder]PowerToys.FileLocksmithExt.dll" />
<RegistryValue Type="string" Key="InprocServer32" Name="ThreadingModel" Value="Apartment" />
</RegistryKey>
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\AllFileSystemObjects\ShellEx\ContextMenuHandlers\FileLocksmithExt">
<RegistryValue Type="string" Value="{84D68575-E186-46AD-B0CB-BAEB45EE29C0}" />
</RegistryKey>
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\Drive\ShellEx\ContextMenuHandlers\FileLocksmithExt">
<RegistryValue Type="string" Value="{84D68575-E186-46AD-B0CB-BAEB45EE29C0}" />
</RegistryKey>
</Component>
</DirectoryRef>
<ComponentGroup Id="FileLocksmithComponentGroup">
<Component Id="RemoveFileLocksmithFolder" Guid="1DAC9A3F-D89C-4730-BF57-1778E011709B" Directory="FileLocksmithAssetsInstallFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveFileLocksmithFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderFileLocksmithAssetsFolder" Directory="FileLocksmithAssetsInstallFolder" On="uninstall" />
</Component>
<ComponentRef Id="Module_FileLocksmith" />
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,27 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define HostsAssetsFiles=?>
<?define HostsAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\Hosts\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<Directory Id="HostsAssetsFolder" Name="Hosts" />
</DirectoryRef>
<DirectoryRef Id="HostsAssetsFolder" FileSource="$(var.HostsAssetsFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--HostsAssetsFiles_Component_Def-->
</DirectoryRef>
<ComponentGroup Id="HostsComponentGroup">
<Component Id="RemoveHostsFolder" Guid="7FF19EBB-041D-4498-9826-C9AECEBE86E1" Directory="HostsAssetsFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveHostsFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderHostsAssetsFolder" Directory="HostsAssetsFolder" On="uninstall" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,52 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define ImageResizerAssetsFiles=?>
<?define ImageResizerAssetsFilesPath=$(var.BinDir)Assets\ImageResizer\?>
<Fragment>
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="ImageResizerAssetsFolder" Name="ImageResizer" />
</DirectoryRef>
<DirectoryRef Id="ImageResizerAssetsFolder" FileSource="$(var.ImageResizerAssetsFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--ImageResizerAssetsFiles_Component_Def-->
<Component Id="Module_ImageResizer_Registry" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\CLSID\{51B4D7E5-7568-4234-B4BB-47FB3C016A69}\InprocServer32">
<RegistryValue Value="[INSTALLFOLDER]PowerToys.ImageResizerExt.dll" Type="string" />
<RegistryValue Name="ThreadingModel" Value="Apartment" Type="string" />
</RegistryKey>
<RegistryValue Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\Directory\ShellEx\DragDropHandlers\ImageResizer" Value="{51B4D7E5-7568-4234-B4BB-47FB3C016A69}" Type="string" />
<!-- Registry Keys for the context menu handler for each of the following image formats: bmp, dib, gif, jfif, jpe, jpeg, jpg, jxr, png, rle, tif, tiff, wdp -->
<RegistryValue Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\SystemFileAssociations\.bmp\ShellEx\ContextMenuHandlers\ImageResizer" Value="{51B4D7E5-7568-4234-B4BB-47FB3C016A69}" Type="string" />
<RegistryValue Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\SystemFileAssociations\.dib\ShellEx\ContextMenuHandlers\ImageResizer" Value="{51B4D7E5-7568-4234-B4BB-47FB3C016A69}" Type="string" />
<RegistryValue Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\SystemFileAssociations\.gif\ShellEx\ContextMenuHandlers\ImageResizer" Value="{51B4D7E5-7568-4234-B4BB-47FB3C016A69}" Type="string" />
<RegistryValue Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\SystemFileAssociations\.jfif\ShellEx\ContextMenuHandlers\ImageResizer" Value="{51B4D7E5-7568-4234-B4BB-47FB3C016A69}" Type="string" />
<RegistryValue Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\SystemFileAssociations\.jpe\ShellEx\ContextMenuHandlers\ImageResizer" Value="{51B4D7E5-7568-4234-B4BB-47FB3C016A69}" Type="string" />
<RegistryValue Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\SystemFileAssociations\.jpeg\ShellEx\ContextMenuHandlers\ImageResizer" Value="{51B4D7E5-7568-4234-B4BB-47FB3C016A69}" Type="string" />
<RegistryValue Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\SystemFileAssociations\.jpg\ShellEx\ContextMenuHandlers\ImageResizer" Value="{51B4D7E5-7568-4234-B4BB-47FB3C016A69}" Type="string" />
<RegistryValue Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\SystemFileAssociations\.jxr\ShellEx\ContextMenuHandlers\ImageResizer" Value="{51B4D7E5-7568-4234-B4BB-47FB3C016A69}" Type="string" />
<RegistryValue Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\SystemFileAssociations\.png\ShellEx\ContextMenuHandlers\ImageResizer" Value="{51B4D7E5-7568-4234-B4BB-47FB3C016A69}" Type="string" />
<RegistryValue Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\SystemFileAssociations\.rle\ShellEx\ContextMenuHandlers\ImageResizer" Value="{51B4D7E5-7568-4234-B4BB-47FB3C016A69}" Type="string" />
<RegistryValue Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\SystemFileAssociations\.tif\ShellEx\ContextMenuHandlers\ImageResizer" Value="{51B4D7E5-7568-4234-B4BB-47FB3C016A69}" Type="string" />
<RegistryValue Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\SystemFileAssociations\.tiff\ShellEx\ContextMenuHandlers\ImageResizer" Value="{51B4D7E5-7568-4234-B4BB-47FB3C016A69}" Type="string" />
<RegistryValue Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\SystemFileAssociations\.wdp\ShellEx\ContextMenuHandlers\ImageResizer" Value="{51B4D7E5-7568-4234-B4BB-47FB3C016A69}" Type="string" />
</Component>
</DirectoryRef>
<ComponentGroup Id="ImageResizerComponentGroup">
<Component Id="RemoveImageResizerFolder" Guid="8E5DE86A-8618-4590-9584-51BCD3A14280" Directory="ImageResizerAssetsFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveImageResizerFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderImageResizerAssetsFolder" Directory="ImageResizerAssetsFolder" On="uninstall" />
</Component>
<ComponentRef Id="Module_ImageResizer_Registry" />
</ComponentGroup>
</Fragment>
</Wix>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,55 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<Fragment>
<DirectoryRef Id="INSTALLFOLDER">
<Directory Id="KeyboardManagerEditorInstallFolder" Name="KeyboardManagerEditor" />
<Directory Id="KeyboardManagerEngineInstallFolder" Name="KeyboardManagerEngine" />
</DirectoryRef>
<!-- KBM Editor -->
<DirectoryRef Id="KeyboardManagerEditorInstallFolder" FileSource="$(var.BinDir)KeyboardManagerEditor">
<Component Id="Module_KeyboardManager_Editor" Guid="E9C74E78-970F-4DF5-9CC0-FFD3CCF285B4" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Module_KeyboardManager_Editor" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="PowerToys.KeyboardManagerEditor.exe" Source="$(var.BinDir)KeyboardManagerEditor\PowerToys.KeyboardManagerEditor.exe" />
<File Id="Microsoft.Toolkit.Win32.UI.XamlHost.dll" Source="$(var.BinDir)KeyboardManagerEditor\Microsoft.Toolkit.Win32.UI.XamlHost.dll" />
<File Id="Microsoft.UI.Xaml.dll" Source="$(var.BinDir)KeyboardManagerEditor\Microsoft.UI.Xaml.dll" />
<File Id="msvcp140_app.dll" Source="$(var.BinDir)KeyboardManagerEditor\msvcp140_app.dll" />
<File Id="resources.pri" Source="$(var.BinDir)KeyboardManagerEditor\resources.pri" />
<File Id="vcruntime140_app.dll" Source="$(var.BinDir)KeyboardManagerEditor\vcruntime140_app.dll" />
<?if $(sys.BUILDARCH) = x64 ?>
<File Id="vcruntime140_1_app.dll" Source="$(var.BinDir)KeyboardManagerEditor\vcruntime140_1_app.dll" />
<?endif?>
<File Id="vcruntime140.dll" Source="$(var.BinDir)KeyboardManagerEditor\vcruntime140.dll" />
<File Id="vcruntime140_1.dll" Source="$(var.BinDir)KeyboardManagerEditor\vcruntime140_1.dll" />
<File Id="msvcp140.dll" Source="$(var.BinDir)KeyboardManagerEditor\msvcp140.dll" />
</Component>
</DirectoryRef>
<!-- KBM Engine -->
<DirectoryRef Id="KeyboardManagerEngineInstallFolder" FileSource="$(var.BinDir)KeyboardManagerEngine">
<Component Id="Module_KeyboardManager_Engine" Guid="3F58FCE3-B44D-4676-94E9-C59F1FE42FFD" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Module_KeyboardManager_Engine" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="PowerToys.KeyboardManagerEngine.exe" Source="$(var.BinDir)KeyboardManagerEngine\PowerToys.KeyboardManagerEngine.exe" />
</Component>
</DirectoryRef>
<ComponentGroup Id="KeyboardManagerComponentGroup">
<Component Id="RemoveKeyboardManagerFolder" Guid="C411CB11-4617-40A4-B6DA-1823B49FB9FF" Directory="INSTALLFOLDER">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveKeyboardManagerFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderKeyboardManagerEditorFolder" Directory="KeyboardManagerEditorInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderKeyboardManagerEngineFolder" Directory="KeyboardManagerEngineInstallFolder" On="uninstall" />
</Component>
<ComponentRef Id="Module_KeyboardManager_Editor" />
<ComponentRef Id="Module_KeyboardManager_Engine" />
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,17 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:Fire="http://wixtoolset.org/schemas/v4/wxs/firewall">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<Fragment>
<ComponentGroup Id="MouseWithoutBordersComponentGroup">
<Component Id="MouseWithoutBordersFirewallComponent" Directory="INSTALLFOLDER" Guid="FEA59459-EC0E-4636-8E76-4C168235982B">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="MouseWithoutBordersFirewall_Component" Value="" KeyPath="yes" />
</RegistryKey>
<!-- The program name used here will be generated by generateFileComponents.ps1 -->
<Fire:FirewallException Id="MouseWithoutBordersFirewallException1" Name="PowerToys.MouseWithoutBorders" Scope="localSubnet" IgnoreFailure="yes" Program="[#BaseApplicationsFiles_File_PowerToys.MouseWithoutBorders.exe]" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,85 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define NewPlusAssetsFiles=?>
<?define NewPlusAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\NewPlus\?>
<?define NewPlusTemplateFilesPath=$(var.BinDir)WinUI3Apps\Assets\NewPlus\Templates\?>
<?define NewPlusTemplateSubFilesPath=$(var.BinDir)WinUI3Apps\Assets\NewPlus\Templates\Example folder\?>
<Fragment>
<!-- Assets -->
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<Directory Id="NewPlusAssetsInstallFolder" Name="NewPlus" />
</DirectoryRef>
<DirectoryRef Id="NewPlusAssetsInstallFolder" FileSource="$(var.NewPlusAssetsFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--NewPlusAssetsFiles_Component_Def-->
<!-- NewPlus Shell Extension for Win10 registration -->
<Component Id="NewPlus_ShellExtension_win10" Guid="D5456D4A-6EEC-4B85-944D-6A6A4A74FFA6" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\CLSID\{FF90D477-E32A-4BE8-8CC5-A502A97F5401}">
<RegistryValue Type="string" Value="NewPlus Shell Extension Win10" />
<RegistryValue Type="string" Name="ContextMenuOptIn" Value="" />
<RegistryValue Type="string" Key="InprocServer32" Value="[WinUI3AppsInstallFolder]PowerToys.NewPlus.ShellExtension.win10.dll" />
<RegistryValue Type="string" Key="InprocServer32" Name="ThreadingModel" Value="Apartment" />
</RegistryKey>
<RegistryKey Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\Directory\background\ShellEx\ContextMenuHandlers\NewPlusShellExtensionWin10">
<RegistryValue Type="string" Value="{FF90D477-E32A-4BE8-8CC5-A502A97F5401}" />
</RegistryKey>
</Component>
</DirectoryRef>
<ComponentGroup Id="NewPlusComponentGroup">
<Component Id="RemoveNewPlusFolder" Guid="4189C789-56EB-409D-912E-3F4F3F4F1FFA" Directory="NewPlusAssetsInstallFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveNewPlusFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderNewPlusAssetsFolder" Directory="NewPlusAssetsInstallFolder" On="uninstall" />
</Component>
<ComponentRef Id="NewPlus_ShellExtension_win10" />
</ComponentGroup>
<!-- Example templates -->
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<Directory Id="NewPlusInstallFolder" Name="NewPlus">
<Directory Id="NewPlusTemplatesInstallFolder" Name="Templates">
<Directory Id="NewPlusTemplatesSubInstallFolder" Name="Example folder" />
</Directory>
</Directory>
</DirectoryRef>
<DirectoryRef Id="NewPlusTemplatesInstallFolder" FileSource="$(var.NewPlusTemplateFilesPath)">
<Component Id="NewPlusTemplateFiles_Component" Guid="39264075-4B7F-40E3-A76F-21E68576D43E" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="NewPlusTemplateFiles_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="NewPlusTemplateFiles_File_1.md" Source="$(var.NewPlusTemplateFilesPath)Any files or folders placed in the template folder are available via New+.txt" />
</Component>
</DirectoryRef>
<DirectoryRef Id="NewPlusTemplatesSubInstallFolder" FileSource="$(var.NewPlusTemplateSubFilesPath)">
<Component Id="NewPlusTemplateSubFiles_Component" Guid="7618E61C-CCB8-492F-B284-E1AE2954AF0B" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="NewPlusTemplateSubFiles_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="NewPlusTemplateSubFiles_File_1.md" Source="$(var.NewPlusTemplateSubFilesPath)Example txt file.txt" />
<File Id="NewPlusTemplateSubFiles_File_2.md" Source="$(var.NewPlusTemplateSubFilesPath)Another example txt file.txt" />
</Component>
</DirectoryRef>
<ComponentGroup Id="NewPlusTemplatesComponentGroup">
<Component Id="RemoveNewPlusTemplateFolder" Guid="3E9B15CA-A50C-42DA-977F-5E9914562FE7" Directory="NewPlusInstallFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveNewPlusTemplateFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderNewPlusInstallFolder" Directory="NewPlusInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderNewPlusTemplatesInstallFolder" Directory="NewPlusTemplatesInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderNewPlusTemplatesSubInstallFolder" Directory="NewPlusTemplatesSubInstallFolder" On="uninstall" />
</Component>
<ComponentRef Id="NewPlusTemplateFiles_Component" />
<ComponentRef Id="NewPlusTemplateSubFiles_Component" />
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,27 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define PeekAssetsFiles=?>
<?define PeekAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\Peek\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<Directory Id="PeekAssetsFolder" Name="Peek" />
</DirectoryRef>
<DirectoryRef Id="PeekAssetsFolder" FileSource="$(var.PeekAssetsFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--PeekAssetsFiles_Component_Def-->
</DirectoryRef>
<ComponentGroup Id="PeekComponentGroup">
<Component Id="RemovePeekFolder" Guid="EF9422D7-FF0A-4887-968A-E61B53ACD23A" Directory="PeekAssetsFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemovePeekFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderPeekAssetsFolder" Directory="PeekAssetsFolder" On="uninstall" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,44 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define PowerRenameAssetsFiles=?>
<?define PowerRenameAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\PowerRename\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<Directory Id="PowerRenameAssetsFolder" Name="PowerRename" />
</DirectoryRef>
<DirectoryRef Id="PowerRenameAssetsFolder" FileSource="$(var.PowerRenameAssetsFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--PowerRenameAssetsFiles_Component_Def-->
<!-- !Warning! Make sure to change Component Guid if you update something here -->
<Component Id="Module_PowerRename" Guid="40D43079-240E-402D-8CE8-571BFFA71175" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\CLSID\{0440049F-D1DC-4E46-B27B-98393D79486B}">
<RegistryValue Type="string" Value="PowerRename Shell Extension" />
<RegistryValue Type="string" Name="ContextMenuOptIn" Value="" />
<RegistryValue Type="string" Key="InprocServer32" Value="[WinUI3AppsInstallFolder]PowerToys.PowerRenameExt.dll" />
<RegistryValue Type="string" Key="InprocServer32" Name="ThreadingModel" Value="Apartment" />
</RegistryKey>
<RegistryKey Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\AllFileSystemObjects\ShellEx\ContextMenuHandlers\PowerRenameExt">
<RegistryValue Type="string" Value="{0440049F-D1DC-4E46-B27B-98393D79486B}" />
</RegistryKey>
<RegistryKey Root="$(var.RegistryScope)" Key="SOFTWARE\Classes\Directory\background\ShellEx\ContextMenuHandlers\PowerRenameExt">
<RegistryValue Type="string" Value="{0440049F-D1DC-4E46-B27B-98393D79486B}" />
</RegistryKey>
</Component>
</DirectoryRef>
<ComponentGroup Id="PowerRenameComponentGroup">
<Component Id="RemovePowerRenameFolder" Guid="2028549B-02E3-4D80-BC3F-59AEA37AC73D" Directory="PowerRenameAssetsFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemovePowerRenameFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderPowerRenameAssetsFolder" Directory="PowerRenameAssetsFolder" On="uninstall" />
</Component>
<ComponentRef Id="Module_PowerRename" />
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,56 @@
<?define UpgradeCode="6341382d-c0a9-4238-9188-be9607e3fab2"?>
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<Bundle Name="PowerToys (Preview) $(var.PowerToysPlatform)" Version="$(var.Version)" Manufacturer="Microsoft Corporation" IconSourceFile="$(var.BinDir)svgs\icon.ico" UpgradeCode="$(var.UpgradeCode)">
<BootstrapperApplication>
<bal:WixStandardBootstrapperApplication LicenseFile="$(var.RepoDir)\installer\License.rtf" LogoFile="$(var.RepoDir)\installer\PowerToysSetupVNext\Images\logo44.png" SuppressOptionsUI="no" SuppressRepair="yes" Theme="rtfLicense" />
</BootstrapperApplication>
<util:RegistrySearch Variable="HasWebView2PerMachine" Root="HKLM" Key="SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" Result="exists" />
<util:RegistrySearch Variable="HasWebView2PerUser" Root="HKCU" Key="Software\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" Result="exists" />
<?if $(var.PerUser) = "true" ?>
<Variable Name="InstallFolder" Type="formatted" Value="[LocalAppDataFolder]PowerToys" bal:Overridable="yes" />
<?else?>
<Variable Name="InstallFolder" Type="formatted" Value="$(var.PlatformProgramFiles)PowerToys" bal:Overridable="yes" />
<?endif?>
<Variable Name="MsiLogFolder" Type="formatted" Value="[LocalAppDataFolder]\Microsoft\PowerToys\" />
<Log Disable="no" Prefix="powertoys-bootstrapper-msi-$(var.Version)" Extension=".log" />
<!-- Only install/upgrade if the version is greater or equal than the currently installed version of PowerToys, to handle the case in which PowerToys was installed from old MSI (before WiX bootstrapper was used) -->
<!-- If the previous installation is a bundle installation, just let WiX run its logic. -->
<Variable Name="MinimumVersion" Type="version" Value="0.0.0.0" />
<Variable Name="TargetPowerToysVersion" Type="version" Value="$(var.Version)" />
<Variable Name="DetectedPowerToysVersion" Type="version" Value="0.0.0.0" />
<Variable Name="DetectedPowerToysUserVersion" Type="version" Value="0.0.0.0" />
<util:ProductSearch Id="SearchInstalledPowerToysVersion" Variable="DetectedPowerToysVersion" UpgradeCode="42B84BF7-5FBF-473B-9C8B-049DC16F7708" Result="version" />
<util:ProductSearch Id="SearchInstalledPowerToysUserVersion" Variable="DetectedPowerToysUserVersion" UpgradeCode="D8B559DB-4C98-487A-A33F-50A8EEE42726" Result="version" />
<?if $(var.PerUser) = "true" ?>
<bal:Condition Message="PowerToys is already installed on this system for all users. We recommend first uninstalling that version before installing this one." Condition="MinimumVersion &gt;= DetectedPowerToysVersion" />
<bal:Condition Message="The same or later version of PowerToys is already installed." Condition="TargetPowerToysVersion &gt;= DetectedPowerToysUserVersion OR WixBundleInstalled" />
<?else?>
<bal:Condition Message="PowerToys is already installed on this system for current user. We recommend first uninstalling that version before installing this one." Condition="MinimumVersion &gt;= DetectedPowerToysUserVersion" />
<bal:Condition Message="A later version of PowerToys is already installed." Condition="TargetPowerToysVersion &gt;= DetectedPowerToysVersion OR WixBundleInstalled" />
<?endif?>
<Variable Name="DetectedWindowsBuildNumber" Type="version" Value="0" />
<util:RegistrySearch Id="SearchWindowsBuildNumber" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion" Value="CurrentBuildNumber" Result="value" Variable="DetectedWindowsBuildNumber" />
<bal:Condition Message="This application is only supported on Windows 10 version v2004 (build 19041) or higher." Condition="DetectedWindowsBuildNumber &gt;= 19041 OR WixBundleInstalled" />
<Chain>
<ExePackage DisplayName="Closing PowerToys application" Name="terminate_powertoys.cmd" Cache="remove" Compressed="yes" Id="TerminatePowerToys" SourceFile="terminate_powertoys.cmd" Permanent="yes" PerMachine="$(var.PerMachineYesNo)" Vital="no">
</ExePackage>
<ExePackage DisplayName="Microsoft Edge WebView2" Name="MicrosoftEdgeWebview2Setup.exe" Compressed="yes" Id="WebView2" DetectCondition="HasWebView2PerMachine OR HasWebView2PerUser" SourceFile="WebView2\MicrosoftEdgeWebview2Setup.exe" Permanent="yes" PerMachine="$(var.PerMachineYesNo)" InstallArguments="/silent /install" RepairArguments="/repair /passive" UninstallArguments="/silent /uninstall">
</ExePackage>
<MsiPackage DisplayName="PowerToys MSI" SourceFile="$(var.PowerToysPlatform)\Release\$(var.MSIPath)\$(var.MSIName)" Compressed="yes" >
<MsiProperty Name="BOOTSTRAPPERINSTALLFOLDER" Value="[InstallFolder]" />
</MsiPackage>
</Chain>
</Bundle>
</Wix>

View File

@@ -0,0 +1,53 @@
<Project Sdk="WixToolset.Sdk/5.0.2">
<PropertyGroup>
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
</PropertyGroup>
<PropertyGroup>
<DefineConstants>Version=$(Version)</DefineConstants>
<Name>PowerToysVNextBootstrapper</Name>
</PropertyGroup>
<PropertyGroup Label="UserMacros" Condition=" '$(PerUser)' == 'true' ">
<DefineConstants>$(DefineConstants);PerUser=true</DefineConstants>
</PropertyGroup>
<PropertyGroup Label="UserMacros" Condition=" '$(PerUser)' != 'true' ">
<DefineConstants>$(DefineConstants);PerUser=false</DefineConstants>
</PropertyGroup>
<PropertyGroup Label="UserMacros" Condition=" '$(CIBuild)' == 'true' ">
<DefineConstants>$(DefineConstants);CIBuild=true</DefineConstants>
</PropertyGroup>
<PropertyGroup Label="UserMacros" Condition=" '$(CIBuild)' != 'true' ">
<DefineConstants>$(DefineConstants);CIBuild=false</DefineConstants>
</PropertyGroup>
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform Condition="'$(Platform)'=='x64'">x64</Platform>
<Platform Condition="'$(Platform)'!='x64'">arm64</Platform>
<OutputName>PowerToysSetupVNext-$(Version)-$(Platform)</OutputName>
<OutputType>Bundle</OutputType>
<SuppressAclReset>True</SuppressAclReset>
<OutputName Condition=" '$(PerUser)' != 'true' ">PowerToysSetupVNext-$(Version)-$(Platform)</OutputName>
<OutputName Condition=" '$(PerUser)' == 'true' ">PowerToysUserSetupVNext-$(Version)-$(Platform)</OutputName>
<OutputPath Condition=" '$(PerUser)' != 'true' ">$(Platform)\$(Configuration)\MachineSetup</OutputPath>
<OutputPath Condition=" '$(PerUser)' == 'true' ">$(Platform)\$(Configuration)\UserSetup</OutputPath>
<IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<ItemGroup>
<Compile Include="PowerToys.wxs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="WixToolset.Util.wixext" />
<PackageReference Include="WixToolset.UI.wixext" />
<PackageReference Include="WixToolset.NetFx.wixext" />
<PackageReference Include="WixToolset.Bal.wixext" />
</ItemGroup>
<ItemGroup>
<Folder Include="CustomDialogs" />
</ItemGroup>
<!-- Prevents NU1503 -->
<Target Name="_IsProjectRestoreSupported" Returns="@(_ValidProjectsForRestore)">
<ItemGroup>
<_ValidProjectsForRestore Include="$(MSBuildProjectFullPath)" />
</ItemGroup>
</Target>
<Target Name="Restore" />
</Project>

View File

@@ -0,0 +1,191 @@
<Project Sdk="WixToolset.Sdk/5.0.2">
<Import Project="..\..\src\CmdPalVersion.props" Condition="Exists('..\..\src\CmdPalVersion.props')" />
<PropertyGroup>
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
</PropertyGroup>
<PropertyGroup Condition="'$(Platform)' == 'x64'">
<DefineConstants>Version=$(Version);MonacoSRCHarvestPath=$(ProjectDir)..\..\x64\$(Configuration)\Assets\Monaco\monacoSRC;CmdPalVersion=$(CmdPalVersion)</DefineConstants> <!-- THIS IS AN INNER LOOP OPTIMIZATION
The build pipeline builds the Settings and Launcher projects for Publication
using a specific profile. If you're doing local installer builds, this will
simulate the build pipeline doing that for you. -->
<PreBuildEvent>IF NOT DEFINED IsPipeline (
call "$([MSBuild]::GetVsInstallRoot())\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 -winsdk=10.0.19041.0 -vcvars_ver=$(VCToolsVersion)
SET PTRoot=$(SolutionDir)\..
call "..\..\..\publish.cmd" x64
)
call powershell.exe -NonInteractive -executionpolicy Unrestricted -File $(MSBuildThisFileDirectory)\generateMonacoWxs.ps1 -monacoWxsFile "$(MSBuildThisFileDirectory)\MonacoSRC.wxs"
</PreBuildEvent>
</PropertyGroup>
<PropertyGroup Condition="'$(Platform)' != 'x64'">
<DefineConstants>Version=$(Version);MonacoSRCHarvestPath=$(ProjectDir)..\..\ARM64\$(Configuration)\Assets\Monaco\monacoSRC;CmdPalVersion=$(CmdPalVersion);</DefineConstants>
<PreBuildEvent>IF NOT DEFINED IsPipeline (
call "$([MSBuild]::GetVsInstallRoot())\Common7\Tools\VsDevCmd.bat" -arch=arm64 -host_arch=amd64 -winsdk=10.0.19041.0 -vcvars_ver=$(VCToolsVersion)
SET PTRoot=$(SolutionDir)\..
call "..\..\..\publish.cmd" arm64
)
call powershell.exe -NonInteractive -executionpolicy Unrestricted -File $(MSBuildThisFileDirectory)\generateMonacoWxs.ps1 -monacoWxsFile "$(MSBuildThisFileDirectory)\MonacoSRC.wxs"
</PreBuildEvent>
</PropertyGroup>
<PropertyGroup>
<RunPostBuildEvent>Always</RunPostBuildEvent>
<PostBuildEvent>
call move /Y ..\..\..\AdvancedPaste.wxs.bk ..\..\..\AdvancedPaste.wxs
call move /Y ..\..\..\Awake.wxs.bk ..\..\..\Awake.wxs
call move /Y ..\..\..\BaseApplications.wxs.bk ..\..\..\BaseApplications.wxs
call move /Y ..\..\..\CmdPal.wxs.bk ..\..\..\CmdPal.wxs
call move /Y ..\..\..\ColorPicker.wxs.bk ..\..\..\ColorPicker.wxs
call move /Y ..\..\..\Core.wxs.bk ..\..\..\Core.wxs
call move /Y ..\..\..\EnvironmentVariables.wxs.bk ..\..\..\EnvironmentVariables.wxs
call move /Y ..\..\..\FileExplorerPreview.wxs.bk ..\..\..\FileExplorerPreview.wxs
call move /Y ..\..\..\FileLocksmith.wxs.bk ..\..\..\FileLocksmith.wxs
call move /Y ..\..\..\Hosts.wxs.bk ..\..\..\Hosts.wxs
call move /Y ..\..\..\ImageResizer.wxs.bk ..\..\..\ImageResizer.wxs
call move /Y ..\..\..\KeyboardManager.wxs.bk ..\..\..\KeyboardManager.wxs
call move /Y ..\..\..\MouseWithoutBorders.wxs.bk ..\..\..\MouseWithoutBorders.wxs
call move /Y ..\..\..\NewPlus.wxs.bk ..\..\..\NewPlus.wxs
call move /Y ..\..\..\Peek.wxs.bk ..\..\..\Peek.wxs
call move /Y ..\..\..\PowerRename.wxs.bk ..\..\..\PowerRename.wxs
call move /Y ..\..\..\Product.wxs.bk ..\..\..\Product.wxs
call move /Y ..\..\..\RegistryPreview.wxs.bk ..\..\..\RegistryPreview.wxs
call move /Y ..\..\..\Resources.wxs.bk ..\..\..\Resources.wxs
call move /Y ..\..\..\Run.wxs.bk ..\..\..\Run.wxs
call move /Y ..\..\..\Settings.wxs.bk ..\..\..\Settings.wxs
call move /Y ..\..\..\ShortcutGuide.wxs.bk ..\..\..\ShortcutGuide.wxs
call move /Y ..\..\..\Tools.wxs.bk ..\..\..\Tools.wxs
call move /Y ..\..\..\WinAppSDK.wxs.bk ..\..\..\WinAppSDK.wxs
call move /Y ..\..\..\WinUI3Applications.wxs.bk ..\..\..\WinUI3Applications.wxs
call move /Y ..\..\..\Workspaces.wxs.bk ..\..\..\Workspaces.wxs
call move /Y ..\..\..\..\PowerToysSetup\AdvancedPaste.wxs.bk ..\..\..\..\PowerToysSetup\AdvancedPaste.wxs
call move /Y ..\..\..\..\PowerToysSetup\Awake.wxs.bk ..\..\..\..\PowerToysSetup\Awake.wxs
call move /Y ..\..\..\..\PowerToysSetup\BaseApplications.wxs.bk ..\..\..\..\PowerToysSetup\BaseApplications.wxs
call move /Y ..\..\..\..\PowerToysSetup\ColorPicker.wxs.bk ..\..\..\..\PowerToysSetup\ColorPicker.wxs
call move /Y ..\..\..\..\PowerToysSetup\Core.wxs.bk ..\..\..\..\PowerToysSetup\Core.wxs
call move /Y ..\..\..\..\PowerToysSetup\EnvironmentVariables.wxs.bk ..\..\..\..\PowerToysSetup\EnvironmentVariables.wxs
call move /Y ..\..\..\..\PowerToysSetup\FileExplorerPreview.wxs.bk ..\..\..\..\PowerToysSetup\FileExplorerPreview.wxs
call move /Y ..\..\..\..\PowerToysSetup\FileLocksmith.wxs.bk ..\..\..\..\PowerToysSetup\FileLocksmith.wxs
call move /Y ..\..\..\..\PowerToysSetup\Hosts.wxs.bk ..\..\..\..\PowerToysSetup\Hosts.wxs
call move /Y ..\..\..\..\PowerToysSetup\ImageResizer.wxs.bk ..\..\..\..\PowerToysSetup\ImageResizer.wxs
call move /Y ..\..\..\..\PowerToysSetup\KeyboardManager.wxs.bk ..\..\..\..\PowerToysSetup\KeyboardManager.wxs
call move /Y ..\..\..\..\PowerToysSetup\MouseWithoutBorders.wxs.bk ..\..\..\..\PowerToysSetup\MouseWithoutBorders.wxs
call move /Y ..\..\..\..\PowerToysSetup\NewPlus.wxs.bk ..\..\..\..\PowerToysSetup\NewPlus.wxs
call move /Y ..\..\..\..\PowerToysSetup\Peek.wxs.bk ..\..\..\..\PowerToysSetup\Peek.wxs
call move /Y ..\..\..\..\PowerToysSetup\PowerRename.wxs.bk ..\..\..\..\PowerToysSetup\PowerRename.wxs
call move /Y ..\..\..\..\PowerToysSetup\Product.wxs.bk ..\..\..\..\PowerToysSetup\Product.wxs
call move /Y ..\..\..\..\PowerToysSetup\RegistryPreview.wxs.bk ..\..\..\..\PowerToysSetup\RegistryPreview.wxs
call move /Y ..\..\..\..\PowerToysSetup\Resources.wxs.bk ..\..\..\..\PowerToysSetup\Resources.wxs
call move /Y ..\..\..\..\PowerToysSetup\Run.wxs.bk ..\..\..\..\PowerToysSetup\Run.wxs
call move /Y ..\..\..\..\PowerToysSetup\Settings.wxs.bk ..\..\..\..\PowerToysSetup\Settings.wxs
call move /Y ..\..\..\..\PowerToysSetup\ShortcutGuide.wxs.bk ..\..\..\..\PowerToysSetup\ShortcutGuide.wxs
call move /Y ..\..\..\..\PowerToysSetup\Tools.wxs.bk ..\..\..\..\PowerToysSetup\Tools.wxs
call move /Y ..\..\..\..\PowerToysSetup\WinAppSDK.wxs.bk ..\..\..\..\PowerToysSetup\WinAppSDK.wxs
call move /Y ..\..\..\..\PowerToysSetup\WinUI3Applications.wxs.bk ..\..\..\..\PowerToysSetup\WinUI3Applications.wxs
call move /Y ..\..\..\..\PowerToysSetup\Workspaces.wxs.bk ..\..\..\..\PowerToysSetup\Workspaces.wxs
</PostBuildEvent>
</PropertyGroup>
<PropertyGroup Label="UserMacros" Condition=" '$(PerUser)' == 'true' ">
<DefineConstants>$(DefineConstants);PerUser=true</DefineConstants>
</PropertyGroup>
<PropertyGroup Label="UserMacros" Condition=" '$(PerUser)' != 'true' ">
<DefineConstants>$(DefineConstants);PerUser=false</DefineConstants>
</PropertyGroup>
<PropertyGroup Label="UserMacros" Condition=" '$(CIBuild)' == 'true' ">
<DefineConstants>$(DefineConstants);CIBuild=true</DefineConstants>
</PropertyGroup>
<PropertyGroup Label="UserMacros" Condition=" '$(CIBuild)' != 'true' ">
<DefineConstants>$(DefineConstants);CIBuild=false</DefineConstants>
</PropertyGroup>
<PropertyGroup>
<Name>PowerToysVNextInstaller</Name>
<!-- We do not support debug installer builds -->
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
<Platform>$(Platform)</Platform>
<ProductVersion>3.10</ProductVersion>
<ProjectGuid>{b6e94700-df38-41f6-a3fd-18b69674ab1e}</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName Condition=" '$(PerUser)' != 'true' ">PowerToysSetupVNext-$(Version)-$(Platform)</OutputName>
<OutputName Condition=" '$(PerUser)' == 'true' ">PowerToysUserSetupVNext-$(Version)-$(Platform)</OutputName>
<OutputType>Package</OutputType>
<SuppressAclReset>True</SuppressAclReset>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<!-- 1076 and ICE91 - warning: using this configuration for perMachine install could cause problems. -->
<!-- 1026 - warning: file ID is too long -->
<SuppressIces>ICE91</SuppressIces>
<SuppressSpecificWarnings>1026;1076</SuppressSpecificWarnings>
</PropertyGroup>
<PropertyGroup>
<OutputPath Condition=" '$(PerUser)' != 'true' ">$(Platform)\$(Configuration)\MachineSetup</OutputPath>
<OutputPath Condition=" '$(PerUser)' == 'true' ">$(Platform)\$(Configuration)\UserSetup</OutputPath>
<IntermediateOutputPath Condition=" '$(PerUser)' != 'true' ">obj\$(Platform)\$(Configuration)\MachineSetup</IntermediateOutputPath>
<IntermediateOutputPath Condition=" '$(PerUser)' == 'true' ">obj\$(Platform)\$(Configuration)\UserSetup</IntermediateOutputPath>
<SuppressIces>ICE40</SuppressIces>
</PropertyGroup>
<ItemGroup>
<Compile Include="CustomDialogs\PTInstallDirDlg.wxs" />
<Compile Include="CustomDialogs\PTLicenseDlg.wxs" />
<Compile Include="CustomDialogs\WixUI_PTInstallDir.wxs" />
<Compile Include="NewPlus.wxs" />
<Compile Include="Product.wxs" />
<Compile Include="AdvancedPaste.wxs" />
<Compile Include="Awake.wxs" />
<Compile Include="BaseApplications.wxs" />
<Compile Include="CmdPal.wxs" />
<Compile Include="ColorPicker.wxs" />
<Compile Include="EnvironmentVariables.wxs" />
<Compile Include="FileExplorerPreview.wxs" />
<Compile Include="FileLocksmith.wxs" />
<Compile Include="Hosts.wxs" />
<Compile Include="ImageResizer.wxs" />
<Compile Include="KeyboardManager.wxs" />
<Compile Include="Peek.wxs" />
<Compile Include="PowerRename.wxs" />
<Compile Include="RegistryPreview.wxs" />
<Compile Include="Run.wxs" />
<Compile Include="Settings.wxs" />
<Compile Include="ShortcutGuide.wxs" />
<Compile Include="Tools.wxs" />
<Compile Include="MouseWithoutBorders.wxs" />
<Compile Include="WinUI3Applications.wxs" />
<Compile Include="MonacoSRC.wxs" />
<Compile Include="Core.wxs" />
<Compile Include="Resources.wxs" />
<Compile Include="WinAppSDK.wxs" />
<Compile Include="Workspaces.wxs" />
</ItemGroup>
<ItemGroup>
<Folder Include="CustomDialogs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="WixToolset.Heat" />
<PackageReference Include="WixToolset.Firewall.wixext" />
<PackageReference Include="WixToolset.Util.wixext" />
<PackageReference Include="WixToolset.UI.wixext" />
<PackageReference Include="WixToolset.NetFx.wixext" />
<PackageReference Include="WixToolset.Bal.wixext" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\PowerToysSetupCustomActions\PowerToysSetupCustomActions.vcxproj">
<Name>PowerToysSetupCustomActions</Name>
<Project>{32f3882b-f2d6-4586-b5ed-11e39e522bd3}</Project>
<Private>True</Private>
<DoNotHarvest>True</DoNotHarvest>
<RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
<RefTargetDir>INSTALLFOLDER</RefTargetDir>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="packages.config" />
</ItemGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
</Target>
<!-- Prevents NU1503 -->
<Target Name="_IsProjectRestoreSupported" Returns="@(_ValidProjectsForRestore)">
<ItemGroup>
<_ValidProjectsForRestore Include="$(MSBuildProjectFullPath)" />
</ItemGroup>
</Target>
<Target Name="Restore" />
</Project>

View File

@@ -0,0 +1,267 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util" xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui">
<?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/
-->
<Package Name="PowerToys (Preview)" Language="1033" Version="$(var.Version)" Manufacturer="Microsoft Corporation" UpgradeCode="$(var.UpgradeCodeGUID)" Scope="$(var.InstallScope)">
<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>
<Launch Condition="(WINDOWSBUILDNUMBER &gt;= 19041)" Message="This application is only supported on Windows 10 version v2004 (build 19041) or higher." />
<Icon Id="powertoys.exe" SourceFile="$(var.BinDir)svgs\icon.ico" />
<Property Id="ARPPRODUCTICON" Value="powertoys.exe" />
<Feature Id="CoreFeature" Title="PowerToys" AllowAdvertise="no" TypicalDefault="install" Description="Contains all PowerToys features." AllowAbsent="no">
<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="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>
<ui:WixUI Id="WixUI_InstallDir" />
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg" Order="99" />
<Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="99" />
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Condition="NOT Installed" />
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Property="_REMOVE_ALL" Value="Yes" />
<Publish Dialog="UserExit" Control="Finish" Event="DoAction" Value="TelemetryLogInstallCancel" Condition="NOT Installed" />
<Publish Dialog="FatalError" Control="Finish" Event="DoAction" Value="TelemetryLogInstallFail" Condition="NOT Installed" />
<Publish Dialog="UserExit" Control="Finish" Event="DoAction" Value="TelemetryLogUninstallCancel" Condition="Installed AND _REMOVE_ALL=&quot;Yes&quot;" />
<Publish Dialog="FatalError" Control="Finish" Event="DoAction" Value="TelemetryLogUninstallFail" Condition="Installed AND _REMOVE_ALL=&quot;Yes&quot;" />
<Publish Dialog="UserExit" Control="Finish" Event="DoAction" Value="TelemetryLogRepairCancel" Condition="Installed AND NOT (_REMOVE_ALL=&quot;Yes&quot;)" />
<Publish Dialog="FatalError" Control="Finish" Event="DoAction" Value="TelemetryLogRepairFail" Condition="Installed AND NOT (_REMOVE_ALL=&quot;Yes&quot;)" />
</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" Condition="BOOTSTRAPPERINSTALLFOLDER = &quot;&quot;" />
<!-- 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" Condition="BOOTSTRAPPERINSTALLFOLDER = DEFAULTBOOTSTRAPPERINSTALLFOLDER AND PREVIOUSINSTALLFOLDER &lt;&gt; &quot;&quot;" />
<SetProperty Action="SetINSTALLFOLDERTOBOOTSTRAPPERINSTALLFOLDER" Id="INSTALLFOLDER" Value="[BOOTSTRAPPERINSTALLFOLDER]" After="DetectPrevInstallPath" Sequence="execute" Condition="BOOTSTRAPPERINSTALLFOLDER &lt;&gt; DEFAULTBOOTSTRAPPERINSTALLFOLDER OR PREVIOUSINSTALLFOLDER = &quot;&quot;" />
<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" Condition="NOT Installed" />
<Custom Action="ApplyModulesRegistryChangeSets" After="InstallFiles" Condition="NOT Installed" />
<Custom Action="InstallCmdPalPackage" After="InstallFiles" Condition="NOT Installed" />
<Custom Action="override Wix4CloseApplications_$(sys.BUILDARCHSHORT)" 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" Condition="NOT Installed" />
<Custom Action="TelemetryLogUninstallSuccess" After="InstallFinalize" Condition="Installed and (NOT UPGRADINGPRODUCTCODE) AND (REMOVE=&quot;ALL&quot;)" />
<Custom Action="UnApplyModulesRegistryChangeSets" Before="RemoveFiles" Condition="Installed AND (REMOVE=&quot;ALL&quot;)" />
<Custom Action="UnRegisterContextMenuPackages" Before="RemoveFiles" Condition="Installed AND (REMOVE=&quot;ALL&quot;)" />
<Custom Action="UnsetAdvancedPasteAPIKey" Before="RemoveFiles" Condition="Installed AND (NOT UPGRADINGPRODUCTCODE) AND (REMOVE=&quot;ALL&quot;)" />
<Custom Action="UnRegisterCmdPalPackage" Before="RemoveFiles" Condition="Installed AND (NOT UPGRADINGPRODUCTCODE) AND (REMOVE=&quot;ALL&quot;)" />
<Custom Action="UninstallCommandNotFound" Before="RemoveFiles" Condition="Installed AND (NOT UPGRADINGPRODUCTCODE) AND (REMOVE=&quot;ALL&quot;)" />
<Custom Action="UpgradeCommandNotFound" After="InstallFiles" Condition="WIX_UPGRADE_DETECTED" />
<Custom Action="UninstallServicesTask" After="InstallFinalize" Condition="Installed AND (NOT UPGRADINGPRODUCTCODE) AND (REMOVE=&quot;ALL&quot;)" />
<!-- 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" Condition="Installed AND (REMOVE=&quot;ALL&quot;)" />
<?endif?>
<Custom Action="TerminateProcesses" Before="InstallValidate" />
<Custom Action="LaunchPowerToys" Before="InstallFinalize" Condition="NOT Installed" />
<!-- 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" Condition="NOT Installed" />
</InstallExecuteSequence>
<CustomAction Id="SetLaunchPowerToysParam" Property="LaunchPowerToys" Value="[INSTALLFOLDER]" />
<CustomAction Id="SetInstallCmdPalPackageParam" Property="InstallCmdPalPackage" Value="[INSTALLFOLDER]" />
<CustomAction Id="LaunchPowerToys" Return="ignore" Impersonate="yes" Execute="deferred" DllEntry="LaunchPowerToysCA" BinaryRef="PTCustomActions" />
<CustomAction Id="TerminateProcesses" Return="ignore" Execute="immediate" DllEntry="TerminateProcessesCA" BinaryRef="PTCustomActions" />
<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" DllEntry="RemoveScheduledTasksCA" BinaryRef="PTCustomActions" />
<CustomAction Id="InstallEmbeddedMSIXTask" Return="ignore" Impersonate="yes" DllEntry="InstallEmbeddedMSIXCA" BinaryRef="PTCustomActions" />
<CustomAction Id="UninstallEmbeddedMSIXTask" Return="ignore" Impersonate="yes" DllEntry="UninstallEmbeddedMSIXCA" BinaryRef="PTCustomActions" />
<CustomAction Id="InstallDSCModule" Return="ignore" Impersonate="yes" Execute="deferred" DllEntry="InstallDSCModuleCA" BinaryRef="PTCustomActions" />
<CustomAction Id="UninstallDSCModule" Return="ignore" Impersonate="yes" DllEntry="UninstallDSCModuleCA" BinaryRef="PTCustomActions" />
<CustomAction Id="UninstallServicesTask" Return="ignore" Impersonate="yes" DllEntry="UninstallServicesCA" BinaryRef="PTCustomActions" />
<CustomAction Id="UninstallCommandNotFound" Return="ignore" Impersonate="yes" Execute="deferred" DllEntry="UninstallCommandNotFoundModuleCA" BinaryRef="PTCustomActions" />
<CustomAction Id="UpgradeCommandNotFound" Return="ignore" Impersonate="yes" Execute="deferred" DllEntry="UpgradeCommandNotFoundModuleCA" BinaryRef="PTCustomActions" />
<CustomAction Id="UnsetAdvancedPasteAPIKey" Return="ignore" Impersonate="yes" Execute="deferred" DllEntry="UnsetAdvancedPasteAPIKeyCA" BinaryRef="PTCustomActions" />
<CustomAction Id="TelemetryLogInstallSuccess" Return="ignore" Impersonate="yes" DllEntry="TelemetryLogInstallSuccessCA" BinaryRef="PTCustomActions" />
<CustomAction Id="TelemetryLogInstallCancel" Return="ignore" Impersonate="yes" DllEntry="TelemetryLogInstallCancelCA" BinaryRef="PTCustomActions" />
<CustomAction Id="TelemetryLogInstallFail" Return="ignore" Impersonate="yes" DllEntry="TelemetryLogInstallFailCA" BinaryRef="PTCustomActions" />
<CustomAction Id="TelemetryLogUninstallSuccess" Return="ignore" Impersonate="yes" DllEntry="TelemetryLogUninstallSuccessCA" BinaryRef="PTCustomActions" />
<CustomAction Id="TelemetryLogUninstallCancel" Return="ignore" Impersonate="yes" DllEntry="TelemetryLogUninstallCancelCA" BinaryRef="PTCustomActions" />
<CustomAction Id="TelemetryLogUninstallFail" Return="ignore" Impersonate="yes" DllEntry="TelemetryLogUninstallFailCA" BinaryRef="PTCustomActions" />
<CustomAction Id="TelemetryLogRepairCancel" Return="ignore" Impersonate="yes" DllEntry="TelemetryLogRepairCancelCA" BinaryRef="PTCustomActions" />
<CustomAction Id="TelemetryLogRepairFail" Return="ignore" Impersonate="yes" DllEntry="TelemetryLogRepairFailCA" BinaryRef="PTCustomActions" />
<CustomAction Id="DetectPrevInstallPath" Return="check" Impersonate="yes" DllEntry="DetectPrevInstallPathCA" BinaryRef="PTCustomActions" />
<CustomAction Id="CleanVideoConferenceRegistry" Return="ignore" Impersonate="yes" Execute="deferred" DllEntry="CleanVideoConferenceRegistryCA" BinaryRef="PTCustomActions" />
<CustomAction Id="ApplyModulesRegistryChangeSets" Return="check" Impersonate="yes" Execute="deferred" DllEntry="ApplyModulesRegistryChangeSetsCA" BinaryRef="PTCustomActions" />
<CustomAction Id="UnApplyModulesRegistryChangeSets" Return="check" Impersonate="yes" Execute="deferred" DllEntry="UnApplyModulesRegistryChangeSetsCA" BinaryRef="PTCustomActions" />
<CustomAction Id="UnRegisterContextMenuPackages" Return="ignore" Impersonate="yes" Execute="deferred" DllEntry="UnRegisterContextMenuPackagesCA" BinaryRef="PTCustomActions" />
<CustomAction Id="UnRegisterCmdPalPackage" Return="ignore" Impersonate="yes" Execute="deferred" DllEntry="UnRegisterCmdPalPackageCA" BinaryRef="PTCustomActions" />
<CustomAction Id="CheckGPO" Return="check" Impersonate="yes" DllEntry="CheckGPOCA" BinaryRef="PTCustomActions" />
<CustomAction Id="InstallCmdPalPackage" Return="ignore" Impersonate="yes" Execute="deferred" DllEntry="InstallCmdPalPackageCA" BinaryRef="PTCustomActions" />
<!-- 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" />
</Package>
<Fragment>
<Binary Id="PTCustomActions" SourceFile="$(var.PowerToysSetupCustomActions.TargetPath)" />
</Fragment>
<!-- Installation directory structure -->
<Fragment>
<StandardDirectory 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>
</StandardDirectory>
<StandardDirectory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="PowerToys (Preview)" />
</StandardDirectory>
<StandardDirectory Id="DesktopFolder" />
</Fragment>
</Wix>

View File

@@ -0,0 +1,28 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define RegistryPreviewAssetsFiles=?>
<?define RegistryPreviewAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\RegistryPreview?>
<Fragment>
<!-- Registry Preview -->
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<Directory Id="RegistryPreviewAssetsInstallFolder" Name="RegistryPreview" />
</DirectoryRef>
<DirectoryRef Id="RegistryPreviewAssetsInstallFolder" FileSource="$(var.RegistryPreviewAssetsFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--RegistryPreviewAssetsFiles_Component_Def-->
</DirectoryRef>
<ComponentGroup Id="RegistryPreviewComponentGroup">
<Component Id="RemoveRegistryPreviewFolder" Guid="D3DBC395-FAC5-44B1-BE44-3FE2B6E0F391" Directory="RegistryPreviewAssetsInstallFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveRegistryPreviewFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderRegistryPreviewAssetsFolder" Directory="RegistryPreviewAssetsInstallFolder" On="uninstall" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,454 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<!-- Languages for localization on build farm -->
<!-- qps-ploc;qps-ploca;qps-plocm; -->
<?define LocLanguageList = ar-SA;cs-CZ;de-DE;es-ES;fa-IR;fr-FR;he-IL;hu-HU;it-IT;ja-JP;ko-KR;nl-NL;pl-PL;pt-BR;pt-PT;ru-RU;sv-SE;tr-TR;uk-UA;zh-CN;zh-TW?>
<Fragment>
<!-- Resource directories should be added only if the installer is built on the build farm -->
<?ifdef env.IsPipeline?>
<?foreach ParentDirectory in INSTALLFOLDER;HistoryPluginFolder;CalculatorPluginFolder;FolderPluginFolder;ProgramPluginFolder;ShellPluginFolder;IndexerPluginFolder;UnitConverterPluginFolder;ValueGeneratorPluginFolder;UriPluginFolder;WindowWalkerPluginFolder;OneNotePluginFolder;RegistryPluginFolder;VSCodeWorkspacesPluginFolder;ServicePluginFolder;SystemPluginFolder;TimeDatePluginFolder;WindowsSettingsPluginFolder;WindowsTerminalPluginFolder;WebSearchPluginFolder;PowerToysPluginFolder?>
<DirectoryRef Id="$(var.ParentDirectory)">
<!-- Resource file directories -->
<?foreach Language in $(var.LocLanguageList)?>
<!--NB: Ids can't contain hyphens-->
<?if $(var.Language) = ar-SA?>
<?define IdSafeLanguage = ar_SA?>
<?elseif $(var.Language) = cs-CZ?>
<?define IdSafeLanguage = cs_CZ?>
<?elseif $(var.Language) = de-DE?>
<?define IdSafeLanguage = de_DE?>
<?elseif $(var.Language) = es-ES?>
<?define IdSafeLanguage = es_ES?>
<?elseif $(var.Language) = fa-IR?>
<?define IdSafeLanguage = fa_IR?>
<?elseif $(var.Language) = fr-FR?>
<?define IdSafeLanguage = fr_FR?>
<?elseif $(var.Language) = he-IL?>
<?define IdSafeLanguage = he_IL?>
<?elseif $(var.Language) = hu-HU?>
<?define IdSafeLanguage = hu_HU?>
<?elseif $(var.Language) = it-IT?>
<?define IdSafeLanguage = it_IT?>
<?elseif $(var.Language) = ja-JP?>
<?define IdSafeLanguage = ja_JP?>
<?elseif $(var.Language) = ko-KR?>
<?define IdSafeLanguage = ko_KR?>
<?elseif $(var.Language) = nl-NL?>
<?define IdSafeLanguage = nl_NL?>
<?elseif $(var.Language) = pl-PL?>
<?define IdSafeLanguage = pl_PL?>
<?elseif $(var.Language) = pt-BR?>
<?define IdSafeLanguage = pt_BR?>
<?elseif $(var.Language) = pt-PT?>
<?define IdSafeLanguage = pt_PT?>
<!--
<?elseif $(var.Language) = qps-ploc?>
<?define IdSafeLanguage = qps_ploc?>
<?elseif $(var.Language) = qps-ploca?>
<?define IdSafeLanguage = qps_ploca?>
<?elseif $(var.Language) = qps-plocm?>
<?define IdSafeLanguage = qps_plocm?>
-->
<?elseif $(var.Language) = ru-RU?>
<?define IdSafeLanguage = ru_RU?>
<?elseif $(var.Language) = sv-SE?>
<?define IdSafeLanguage = sv_SE?>
<?elseif $(var.Language) = tr-TR?>
<?define IdSafeLanguage = tr_TR?>
<?elseif $(var.Language) = uk-UA?>
<?define IdSafeLanguage = uk_UA?>
<?elseif $(var.Language) = zh-CN?>
<?define IdSafeLanguage = zh_CN?>
<?elseif $(var.Language) = zh-TW?>
<?define IdSafeLanguage = zh_TW?>
<?else?>
<?define IdSafeLanguage = $(var.Language)?>
<?endif?>
<Directory Id="Resource$(var.IdSafeLanguage)$(var.ParentDirectory)" Name="$(var.Language)" />
<?undef IdSafeLanguage?>
<?endforeach?>
</DirectoryRef>
<?endforeach?>
<?endif?>
<ComponentGroup Id="ResourcesComponentGroup">
<!-- Resource components should be added only if the installer is built on the build farm -->
<?ifdef env.IsPipeline?>
<!-- Components for adding resource files -->
<?foreach Language in $(var.LocLanguageList)?>
<!--NB: Ids can't contain hyphens-->
<?if $(var.Language) = ar-SA?>
<!-- CompGUIDPrefix is language-dependent guid prefix missing the last 2 digits. -->
<?define CompGUIDPrefix = 4CF0A1CD-CA13-408B-AAC1-6E024B86A9?>
<?define IdSafeLanguage = ar_SA?>
<?elseif $(var.Language) = cs-CZ?>
<?define CompGUIDPrefix = 3E93405A-B91B-4E04-BAEC-26BEEE60F9?>
<?define IdSafeLanguage = cs_CZ?>
<?elseif $(var.Language) = de-DE?>
<?define CompGUIDPrefix = AF28C057-7ED9-474C-8E7E-D583BE8ECF?>
<?define IdSafeLanguage = de_DE?>
<?elseif $(var.Language) = es-ES?>
<?define CompGUIDPrefix = DD1FEEBD-55F0-44BA-A0FF-62C5C1C952?>
<?define IdSafeLanguage = es_ES?>
<?elseif $(var.Language) = fa-IR?>
<?define CompGUIDPrefix = 157411C9-CAB8-4CC5-AEA4-5ABEB91E59?>
<?define IdSafeLanguage = fa_IR?>
<?elseif $(var.Language) = fr-FR?>
<?define CompGUIDPrefix = F9F86D61-C747-43FC-8509-F3D1F198E1?>
<?define IdSafeLanguage = fr_FR?>
<?elseif $(var.Language) = he-IL?>
<?define CompGUIDPrefix = AFEA6E19-5B93-4CBB-B0CB-AFB2565C7D?>
<?define IdSafeLanguage = he_IL?>
<?elseif $(var.Language) = hu-HU?>
<?define CompGUIDPrefix = 9A919A40-E457-47F5-97C8-E886F06DDE?>
<?define IdSafeLanguage = hu_HU?>
<?elseif $(var.Language) = it-IT?>
<?define CompGUIDPrefix = 48FBF6D9-32DB-46FF-A64C-225269E738?>
<?define IdSafeLanguage = it_IT?>
<?elseif $(var.Language) = ja-JP?>
<?define CompGUIDPrefix = FB8E04AB-C8E8-43C0-8883-19F73E4EBA?>
<?define IdSafeLanguage = ja_JP?>
<?elseif $(var.Language) = ko-KR?>
<?define CompGUIDPrefix = 86C8F07C-80CA-420A-B6E7-86933D640C?>
<?define IdSafeLanguage = ko_KR?>
<?elseif $(var.Language) = nl-NL?>
<?define CompGUIDPrefix = C68F115F-28DD-4B45-9512-405C432458?>
<?define IdSafeLanguage = nl_NL?>
<?elseif $(var.Language) = pl-PL?>
<?define CompGUIDPrefix = 97494A31-5F57-4EC1-A6A9-994DF0813B?>
<?define IdSafeLanguage = pl_PL?>
<?elseif $(var.Language) = pt-BR?>
<?define CompGUIDPrefix = F4985235-2AB9-446B-BF8E-B14929A160?>
<?define IdSafeLanguage = pt_BR?>
<?elseif $(var.Language) = pt-PT?>
<?define CompGUIDPrefix = 58155841-D53A-4330-89D3-5C0338B928?>
<?define IdSafeLanguage = pt_PT?>
<!--
<?elseif $(var.Language) = qps-ploc?>
<?define CompGUIDPrefix = 75710CB2-DBDA-420B-9676-34D5F9D4A2?>
<?define IdSafeLanguage = qps_ploc?>
<?elseif $(var.Language) = qps-ploca?>
<?define CompGUIDPrefix = 55AF2A35-F959-49AB-B9EF-DFC9964A4F?>
<?define IdSafeLanguage = qps_ploca?>
<?elseif $(var.Language) = qps-plocm?>
<?define CompGUIDPrefix = D8CE2F7B-B0A1-4687-BFB7-1792B2FCCD?>
<?define IdSafeLanguage = qps_plocm?>
-->
<?elseif $(var.Language) = ru-RU?>
<?define CompGUIDPrefix = 157BAF33-8D3F-46B7-9CF9-2C18E601CC?>
<?define IdSafeLanguage = ru_RU?>
<?elseif $(var.Language) = sv-SE?>
<?define CompGUIDPrefix = 85B4199F-5F89-42C3-B7C2-DBCD3E5267?>
<?define IdSafeLanguage = sv_SE?>
<?elseif $(var.Language) = tr-TR?>
<?define CompGUIDPrefix = EA375345-F52A-499B-A45E-108CE67EAF?>
<?define IdSafeLanguage = tr_TR?>
<?elseif $(var.Language) = uk-UA?>
<?define CompGUIDPrefix = 17BA6BA7-8CB6-47CA-BEB1-2FE87A0724?>
<?define IdSafeLanguage = uk_UA?>
<?elseif $(var.Language) = zh-CN?>
<?define CompGUIDPrefix = F8EE7CE9-58EA-4850-B76F-C22362DC0E?>
<?define IdSafeLanguage = zh_CN?>
<?elseif $(var.Language) = zh-TW?>
<?define CompGUIDPrefix = F07F3210-79E2-4C38-AEF7-D8EBE06621?>
<?define IdSafeLanguage = zh_TW?>
<?else?>
<?define IdSafeLanguage = $(var.Language)?>
<?define CompGUIDPrefix = 94D9A417-56FC-435D-8167-A45F5D7A75?>
<?endif?>
<Component Id="Launcher_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER" Guid="$(var.CompGUIDPrefix)00">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.PowerLauncher.resources.dll" />
</Component>
<Component Id="FancyZonesEditor_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER" Guid="$(var.CompGUIDPrefix)01">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="FancyZonesEditor_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="FancyZonesEditor_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.FancyZonesEditor.resources.dll" />
</Component>
<Component Id="ImageResizer_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER" Guid="$(var.CompGUIDPrefix)02">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="ImageResizer_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="ImageResizer_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.ImageResizer.resources.dll" />
</Component>
<Component Id="ColorPicker_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER" Guid="$(var.CompGUIDPrefix)03">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="ColorPicker_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="ColorPicker_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.ColorPickerUI.resources.dll" />
</Component>
<Component Id="MarkdownPreviewHandler_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER" Guid="$(var.CompGUIDPrefix)04">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="MarkdownPreviewHandler_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="MarkdownPreviewHandler_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)$(var.Language)\PowerToys.MarkdownPreviewHandler.resources.dll" />
</Component>
<Component Id="SVGPreviewHandler_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER" Guid="$(var.CompGUIDPrefix)05">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="SVGPreviewHandler_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="SVGPreviewHandler_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.SvgPreviewHandler.resources.dll" />
</Component>
<Component Id="PDFPreviewHandler_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER" Guid="$(var.CompGUIDPrefix)06">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="PDFPreviewHandler_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="PDFPreviewHandler_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.PdfPreviewHandler.resources.dll" />
</Component>
<Component Id="GcodePreviewHandler_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER" Guid="$(var.CompGUIDPrefix)07">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="GcodePreviewHandler_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="GcodePreviewHandler_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.GcodePreviewHandler.resources.dll" />
</Component>
<!-- PowerToys Run aka Launcher plugin resources -->
<Component Id="Launcher_Calculator_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)CalculatorPluginFolder" Guid="$(var.CompGUIDPrefix)08">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_Calculator_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_Calculator_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\Calculator\$(var.Language)\Microsoft.PowerToys.Run.Plugin.Calculator.resources.dll" />
</Component>
<Component Id="Launcher_Folder_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)FolderPluginFolder" Guid="$(var.CompGUIDPrefix)09">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_Folder_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_Folder_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\Folder\$(var.Language)\Microsoft.Plugin.Folder.resources.dll" />
</Component>
<Component Id="Launcher_Program_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)0A" Directory="Resource$(var.IdSafeLanguage)ProgramPluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_Program_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_Program_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\Program\$(var.Language)\Microsoft.Plugin.Program.resources.dll" />
</Component>
<Component Id="Launcher_Shell_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)0B" Directory="Resource$(var.IdSafeLanguage)ShellPluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_Shell_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_Shell_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\Shell\$(var.Language)\Microsoft.Plugin.Shell.resources.dll" />
</Component>
<Component Id="Launcher_Indexer_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)0C" Directory="Resource$(var.IdSafeLanguage)IndexerPluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_Indexer_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_Indexer_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\Indexer\$(var.Language)\Microsoft.Plugin.Indexer.resources.dll" />
</Component>
<Component Id="Launcher_Uri_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)0D" Directory="Resource$(var.IdSafeLanguage)UriPluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_Uri_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_Uri_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\Uri\$(var.Language)\Microsoft.Plugin.Uri.resources.dll" />
</Component>
<Component Id="Launcher_VSCodeWorkspaces_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)0E" Directory="Resource$(var.IdSafeLanguage)VSCodeWorkspacesPluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_VSCodeWorkspaces_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_VSCodeWorkspaces_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\VSCodeWorkspaces\$(var.Language)\Community.PowerToys.Run.Plugin.VSCodeWorkspaces.resources.dll" />
</Component>
<Component Id="Launcher_WindowWalker_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)0F" Directory="Resource$(var.IdSafeLanguage)WindowWalkerPluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_WindowWalker_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_WindowWalker_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\WindowWalker\$(var.Language)\Microsoft.Plugin.WindowWalker.resources.dll" />
</Component>
<Component Id="Launcher_Registry_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)10" Directory="Resource$(var.IdSafeLanguage)RegistryPluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_Registry_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_Registry_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\Registry\$(var.Language)\Microsoft.PowerToys.Run.Plugin.Registry.resources.dll" />
</Component>
<Component Id="Launcher_Service_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)11" Directory="Resource$(var.IdSafeLanguage)ServicePluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_Service_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_Service_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\Service\$(var.Language)\Microsoft.PowerToys.Run.Plugin.Service.resources.dll" />
</Component>
<Component Id="Launcher_System_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)12" Directory="Resource$(var.IdSafeLanguage)SystemPluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_System_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_System_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\System\$(var.Language)\Microsoft.PowerToys.Run.Plugin.System.resources.dll" />
</Component>
<Component Id="Launcher_WindowsSettings_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)13" Directory="Resource$(var.IdSafeLanguage)WindowsSettingsPluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_WindowsSettings_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_WindowsSettings_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\WindowsSettings\$(var.Language)\Microsoft.PowerToys.Run.Plugin.WindowsSettings.resources.dll" />
</Component>
<Component Id="Launcher_WindowsTerminal_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)15" Directory="Resource$(var.IdSafeLanguage)WindowsTerminalPluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_WindowsTerminal_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_WindowsTerminal_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\WindowsTerminal\$(var.Language)\Microsoft.PowerToys.Run.Plugin.WindowsTerminal.resources.dll" />
</Component>
<Component Id="Launcher_WebSearch_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)16" Directory="Resource$(var.IdSafeLanguage)WebSearchPluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_WebSearch_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_WebSearch_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\WebSearch\$(var.Language)\Community.PowerToys.Run.Plugin.WebSearch.resources.dll" />
</Component>
<Component Id="Launcher_UnitConverter_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)17" Directory="Resource$(var.IdSafeLanguage)UnitConverterPluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_UnitConverter_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_UnitConverter_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\UnitConverter\$(var.Language)\Community.PowerToys.Run.Plugin.UnitConverter.resources.dll" />
</Component>
<Component Id="Launcher_TimeDate_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)18" Directory="Resource$(var.IdSafeLanguage)TimeDatePluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_TimeDate_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_TimeDate_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\TimeDate\$(var.Language)\Microsoft.PowerToys.Run.Plugin.TimeDate.resources.dll" />
</Component>
<Component Id="Launcher_OneNote_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)19" Directory="Resource$(var.IdSafeLanguage)OneNotePluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Resource$(var.IdSafeLanguage)OneNotePluginFolder" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_OneNote_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\OneNote\$(var.Language)\Microsoft.PowerToys.Run.Plugin.OneNote.resources.dll" />
</Component>
<Component Id="MonacoPreviewHandler_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER" Guid="$(var.CompGUIDPrefix)1A">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="MonacoPreviewHandler_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="MonacoPreviewHandler_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.MonacoPreviewHandler.resources.dll" />
</Component>
<Component Id="Launcher_History_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)HistoryPluginFolder" Guid="$(var.CompGUIDPrefix)1B">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_History_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_History_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\History\$(var.Language)\Microsoft.PowerToys.Run.Plugin.History.resources.dll" />
</Component>
<Component Id="Launcher_PowerToys_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)PowerToysPluginFolder" Guid="$(var.CompGUIDPrefix)1C">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_PowerToys_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_PowerToys_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\PowerToys\$(var.Language)\Microsoft.PowerToys.Run.Plugin.PowerToys.resources.dll" />
</Component>
<Component Id="Launcher_ValueGenerator_$(var.IdSafeLanguage)_Component" Guid="$(var.CompGUIDPrefix)1D" Directory="Resource$(var.IdSafeLanguage)ValueGeneratorPluginFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Launcher_ValueGenerator_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Launcher_ValueGenerator_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)RunPlugins\ValueGenerator\$(var.Language)\Community.PowerToys.Run.Plugin.ValueGenerator.resources.dll" />
</Component>
<Component Id="QoiPreviewHandler_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER" Guid="$(var.CompGUIDPrefix)1E">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="QoiPreviewHandler_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="QoiPreviewHandler_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.QoiPreviewHandler.resources.dll" />
</Component>
<Component Id="Awake_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER" Guid="$(var.CompGUIDPrefix)1F">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="Awake_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="Awake_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.Awake.resources.dll" />
</Component>
<Component Id="PowerOCR_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER" Guid="$(var.CompGUIDPrefix)20">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="PowerOCR_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="PowerOCR_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.PowerOCR.resources.dll" />
</Component>
<Component Id="WorkspacesEditor_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER" Guid="$(var.CompGUIDPrefix)21">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="WorkspacesEditor_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="WorkspacesEditor_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.WorkspacesEditor.resources.dll" />
</Component>
<?undef IdSafeLanguage?>
<?undef CompGUIDPrefix?>
<?endforeach?>
<?endif?>
<?ifdef env.IsPipeline?>
<Component Id="RemoveResourcesFolder" Guid="9BC0A5A1-CBC5-47C8-8544-3F8A8C0D45F5" Directory="INSTALLFOLDER">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveResourcesFolder" Value="" KeyPath="yes" />
</RegistryKey>
<?foreach Language in $(var.LocLanguageList)?>
<!--NB: Ids can't contain hyphens-->
<?if $(var.Language) = ar-SA?>
<?define IdSafeLanguage = ar_SA?>
<?elseif $(var.Language) = cs-CZ?>
<?define IdSafeLanguage = cs_CZ?>
<?elseif $(var.Language) = de-DE?>
<?define IdSafeLanguage = de_DE?>
<?elseif $(var.Language) = es-ES?>
<?define IdSafeLanguage = es_ES?>
<?elseif $(var.Language) = fa-IR?>
<?define IdSafeLanguage = fa_IR?>
<?elseif $(var.Language) = fr-FR?>
<?define IdSafeLanguage = fr_FR?>
<?elseif $(var.Language) = he-IL?>
<?define IdSafeLanguage = he_IL?>
<?elseif $(var.Language) = hu-HU?>
<?define IdSafeLanguage = hu_HU?>
<?elseif $(var.Language) = it-IT?>
<?define IdSafeLanguage = it_IT?>
<?elseif $(var.Language) = ja-JP?>
<?define IdSafeLanguage = ja_JP?>
<?elseif $(var.Language) = ko-KR?>
<?define IdSafeLanguage = ko_KR?>
<?elseif $(var.Language) = nl-NL?>
<?define IdSafeLanguage = nl_NL?>
<?elseif $(var.Language) = pl-PL?>
<?define IdSafeLanguage = pl_PL?>
<?elseif $(var.Language) = pt-BR?>
<?define IdSafeLanguage = pt_BR?>
<?elseif $(var.Language) = pt-PT?>
<?define IdSafeLanguage = pt_PT?>
<!--
<?elseif $(var.Language) = qps-ploc?>
<?define IdSafeLanguage = qps_ploc?>
<?elseif $(var.Language) = qps-ploca?>
<?define IdSafeLanguage = qps_ploca?>
<?elseif $(var.Language) = qps-plocm?>
<?define IdSafeLanguage = qps_plocm?>
-->
<?elseif $(var.Language) = ru-RU?>
<?define IdSafeLanguage = ru_RU?>
<?elseif $(var.Language) = sv-SE?>
<?define IdSafeLanguage = sv_SE?>
<?elseif $(var.Language) = tr-TR?>
<?define IdSafeLanguage = tr_TR?>
<?elseif $(var.Language) = uk-UA?>
<?define IdSafeLanguage = uk_UA?>
<?elseif $(var.Language) = zh-CN?>
<?define IdSafeLanguage = zh_CN?>
<?elseif $(var.Language) = zh-TW?>
<?define IdSafeLanguage = zh_TW?>
<?else?>
<?define IdSafeLanguage = $(var.Language)?>
<?endif?>
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)INSTALLFOLDER" Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)CalculatorPluginFolder" Directory="Resource$(var.IdSafeLanguage)CalculatorPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)FolderPluginFolder" Directory="Resource$(var.IdSafeLanguage)FolderPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)ProgramPluginFolder" Directory="Resource$(var.IdSafeLanguage)ProgramPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)ShellPluginFolder" Directory="Resource$(var.IdSafeLanguage)ShellPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)IndexerPluginFolder" Directory="Resource$(var.IdSafeLanguage)IndexerPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)UriPluginFolder" Directory="Resource$(var.IdSafeLanguage)UriPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)VSCodeWorkspacesPluginFolder" Directory="Resource$(var.IdSafeLanguage)VSCodeWorkspacesPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)WindowWalkerPluginFolder" Directory="Resource$(var.IdSafeLanguage)WindowWalkerPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)RegistryPluginFolder" Directory="Resource$(var.IdSafeLanguage)RegistryPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)ServicePluginFolder" Directory="Resource$(var.IdSafeLanguage)ServicePluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)SystemPluginFolder" Directory="Resource$(var.IdSafeLanguage)SystemPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)WindowsSettingsPluginFolder" Directory="Resource$(var.IdSafeLanguage)WindowsSettingsPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)WindowsTerminalPluginFolder" Directory="Resource$(var.IdSafeLanguage)WindowsTerminalPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)WebSearchPluginFolder" Directory="Resource$(var.IdSafeLanguage)WebSearchPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)UnitConverterPluginFolder" Directory="Resource$(var.IdSafeLanguage)UnitConverterPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)TimeDatePluginFolder" Directory="Resource$(var.IdSafeLanguage)TimeDatePluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)OneNotePluginFolder" Directory="Resource$(var.IdSafeLanguage)OneNotePluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)HistoryPluginFolder" Directory="Resource$(var.IdSafeLanguage)HistoryPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)PowerToysPluginFolder" Directory="Resource$(var.IdSafeLanguage)PowerToysPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderResourcesResource$(var.IdSafeLanguage)ValueGeneratorPluginFolder" Directory="Resource$(var.IdSafeLanguage)ValueGeneratorPluginFolder" On="uninstall" />
<?undef IdSafeLanguage?>
<?endforeach?>
</Component>
<?endif?>
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,446 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define launcherImagesComponentFiles=?>
<?define launcherImagesComponentFilesPath=$(var.BinDir)Assets\PowerLauncher\?>
<?define calcComponentFiles=?>
<?define calcComponentFilesPath=$(var.BinDir)RunPlugins\Calculator\?>
<?define calcImagesComponentFiles=?>
<?define calcImagesComponentFilesPath=$(var.BinDir)RunPlugins\Calculator\Images\?>
<?define FolderComponentFiles=?>
<?define FolderComponentFilesPath=$(var.BinDir)RunPlugins\Folder\?>
<?define FolderImagesComponentFiles=?>
<?define FolderImagesComponentFilesPath=$(var.BinDir)RunPlugins\Folder\Images?>
<?define ProgramComponentFiles=?>
<?define ProgramComponentFilesPath=$(var.BinDir)RunPlugins\Program\?>
<?define ProgramImagesComponentFiles=?>
<?define ProgramImagesComponentFilesPath=$(var.BinDir)RunPlugins\Program\Images\?>
<?define ShellComponentFiles=?>
<?define ShellComponentFilesPath=$(var.BinDir)RunPlugins\Shell\?>
<?define ShellImagesComponentFiles=?>
<?define ShellImagesComponentFilesPath=$(var.BinDir)RunPlugins\Shell\Images\?>
<?define IndexerComponentFiles=?>
<?define IndexerComponentFilesPath=$(var.BinDir)RunPlugins\Indexer\?>
<?define IndexerImagesComponentFiles=?>
<?define IndexerImagesComponentFilesPath=$(var.BinDir)RunPlugins\Indexer\Images\?>
<?define UnitConvCompFiles=?>
<?define UnitConvCompFilesPath=$(var.BinDir)RunPlugins\UnitConverter\?>
<?define UnitConvImagesCompFiles=?>
<?define UnitConvImagesCompFilesPath=$(var.BinDir)RunPlugins\UnitConverter\Images\?>
<?define WebSrchCompFiles=?>
<?define WebSrchCompFilesPath=$(var.BinDir)RunPlugins\WebSearch\?>
<?define WebSrchImagesCompFiles=?>
<?define WebSrchImagesCompFilesPath=$(var.BinDir)RunPlugins\WebSearch\Images\?>
<?define HistoryPluginComponentFiles=?>
<?define HistoryPluginComponentFilesPath=$(var.BinDir)RunPlugins\History\?>
<?define HistoryPluginImagesComponentFiles=?>
<?define HistoryPluginImagesComponentFilesPath=$(var.BinDir)RunPlugins\History\Images\?>
<?define UriComponentFiles=?>
<?define UriComponentFilesPath=$(var.BinDir)RunPlugins\Uri\?>
<?define UriImagesComponentFiles=?>
<?define UriImagesComponentFilesPath=$(var.BinDir)RunPlugins\Uri\Images\?>
<?define VSCWrkCompFiles=?>
<?define VSCWrkCompFilesPath=$(var.BinDir)RunPlugins\VSCodeWorkspaces\?>
<?define VSCWrkImagesCompFiles=?>
<?define VSCWrkImagesCompFilesPath=$(var.BinDir)RunPlugins\VSCodeWorkspaces\Images\?>
<?define WindowWlkrCompFiles=?>
<?define WindowWlkrCompFilesPath=$(var.BinDir)RunPlugins\WindowWalker\?>
<?define WindowWlkrImagesCompFiles=?>
<?define WindowWlkrImagesCompFilesPath=$(var.BinDir)RunPlugins\WindowWalker\Images\?>
<?define OneNoteComponentFiles=?>
<?define OneNoteComponentFilesPath=$(var.BinDir)RunPlugins\OneNote\?>
<?define OneNoteImagesComponentFiles=?>
<?define OneNoteImagesComponentFilesPath=$(var.BinDir)RunPlugins\OneNote\Images\?>
<?define RegistryComponentFiles=?>
<?define RegistryComponentFilesPath=$(var.BinDir)RunPlugins\Registry\?>
<?define RegistryImagesComponentFiles=?>
<?define RegistryImagesComponentFilesPath=$(var.BinDir)RunPlugins\Registry\Images\?>
<?define ServiceComponentFiles=?>
<?define ServiceComponentFilesPath=$(var.BinDir)RunPlugins\Service\?>
<?define ServiceImagesComponentFiles=?>
<?define ServiceImagesComponentFilesPath=$(var.BinDir)RunPlugins\Service\Images\?>
<?define SystemComponentFiles=?>
<?define SystemComponentFilesPath=$(var.BinDir)RunPlugins\System\?>
<?define SystemImagesComponentFiles=?>
<?define SystemImagesComponentFilesPath=$(var.BinDir)RunPlugins\System\Images\?>
<?define TimeDateComponentFiles=?>
<?define TimeDateComponentFilesPath=$(var.BinDir)RunPlugins\TimeDate\?>
<?define TimeDateImagesComponentFiles=?>
<?define TimeDateImagesComponentFilesPath=$(var.BinDir)RunPlugins\TimeDate\Images\?>
<?define WinSetCmpFiles=?>
<?define WinSetCmpFilesPath=$(var.BinDir)RunPlugins\WindowsSettings\?>
<?define WinSetImagesCmpFiles=?>
<?define WinSetImagesCmpFilesPath=$(var.BinDir)RunPlugins\WindowsSettings\Images\?>
<?define WinTermCmpFiles=?>
<?define WinTermCmpFilesPath=$(var.BinDir)RunPlugins\WindowsTerminal\?>
<?define WinTermImagesCmpFiles=?>
<?define WinTermImagesCmpFilesPath=$(var.BinDir)RunPlugins\WindowsTerminal\Images\?>
<?define PowerToysCmpFiles=?>
<?define PowerToysCmpFilesPath=$(var.BinDir)RunPlugins\PowerToys\?>
<?define PowerToysImagesCmpFiles=?>
<?define PowerToysImagesCmpFilesPath=$(var.BinDir)RunPlugins\PowerToys\Images\?>
<?define ValueGeneratorCmpFiles=?>
<?define ValueGeneratorCmpFilesPath=$(var.BinDir)RunPlugins\ValueGenerator\?>
<?define ValueGeneratorImagesCmpFiles=?>
<?define ValueGeneratorImagesCmpFilesPath=$(var.BinDir)RunPlugins\ValueGenerator\Images\?>
<Fragment>
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="LauncherImagesFolder" Name="PowerLauncher" />
</DirectoryRef>
<DirectoryRef Id="INSTALLFOLDER">
<!-- Plugins -->
<Directory Id="LauncherPluginsFolder" Name="RunPlugins">
<Directory Id="WebSearchPluginFolder" Name="WebSearch">
<Directory Id="WebSearchImagesFolder" Name="Images" />
</Directory>
<Directory Id="CalculatorPluginFolder" Name="Calculator">
<Directory Id="CalculatorImagesFolder" Name="Images" />
</Directory>
<Directory Id="FolderPluginFolder" Name="Folder">
<Directory Id="FolderPluginImagesFolder" Name="Images" />
</Directory>
<Directory Id="ProgramPluginFolder" Name="Program">
<Directory Id="ProgramImagesFolder" Name="Images" />
</Directory>
<Directory Id="ShellPluginFolder" Name="Shell">
<Directory Id="ShellImagesFolder" Name="Images" />
</Directory>
<Directory Id="IndexerPluginFolder" Name="Indexer">
<Directory Id="IndexerImagesFolder" Name="Images" />
</Directory>
<Directory Id="UriPluginFolder" Name="Uri">
<Directory Id="UriImagesFolder" Name="Images" />
</Directory>
<Directory Id="HistoryPluginFolder" Name="History">
<Directory Id="HistoryImagesFolder" Name="Images" />
</Directory>
<Directory Id="UnitConverterPluginFolder" Name="UnitConverter">
<Directory Id="UnitConverterImagesFolder" Name="Images" />
</Directory>
<Directory Id="VSCodeWorkspacesPluginFolder" Name="VSCodeWorkspaces">
<Directory Id="VSCodeWorkspaceImagesFolder" Name="Images" />
</Directory>
<Directory Id="WindowWalkerPluginFolder" Name="WindowWalker">
<Directory Id="WindowWalkerImagesFolder" Name="Images" />
</Directory>
<Directory Id="OneNotePluginFolder" Name="OneNote">
<Directory Id="OneNoteImagesFolder" Name="Images" />
</Directory>
<Directory Id="PowerToysPluginFolder" Name="PowerToys">
<Directory Id="PowerToysImagesFolder" Name="Images" />
</Directory>
<Directory Id="RegistryPluginFolder" Name="Registry">
<Directory Id="RegistryImagesFolder" Name="Images" />
</Directory>
<Directory Id="ServicePluginFolder" Name="Service">
<Directory Id="ServiceImagesFolder" Name="Images" />
</Directory>
<Directory Id="WindowsTerminalPluginFolder" Name="WindowsTerminal">
<Directory Id="WindowsTerminalImagesFolder" Name="Images" />
</Directory>
<Directory Id="SystemPluginFolder" Name="System">
<Directory Id="SystemImagesFolder" Name="Images" />
</Directory>
<Directory Id="TimeDatePluginFolder" Name="TimeDate">
<Directory Id="TimeDateImagesFolder" Name="Images" />
</Directory>
<Directory Id="WindowsSettingsPluginFolder" Name="WindowsSettings">
<Directory Id="WindowsSettingsImagesFolder" Name="Images" />
</Directory>
<Directory Id="ValueGeneratorPluginFolder" Name="ValueGenerator">
<Directory Id="ValueGeneratorImagesFolder" Name="Images" />
</Directory>
</Directory>
</DirectoryRef>
<DirectoryRef Id="LauncherImagesFolder" FileSource="$(var.launcherImagesComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--launcherImagesComponentFiles_Component_Def-->
</DirectoryRef>
<!-- Calculator Plugin -->
<DirectoryRef Id="CalculatorPluginFolder" FileSource="$(var.calcComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--calcComponentFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="CalculatorImagesFolder" FileSource="$(var.calcImagesComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--calcImagesComponentFiles_Component_Def-->
</DirectoryRef>
<!-- Folder Plugin -->
<DirectoryRef Id="FolderPluginFolder" FileSource="$(var.FolderComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--FolderComponentFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="FolderPluginImagesFolder" FileSource="$(var.FolderImagesComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--FolderImagesComponentFiles_Component_Def-->
</DirectoryRef>
<!-- Program Plugin -->
<DirectoryRef Id="ProgramPluginFolder" FileSource="$(var.ProgramComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--ProgramComponentFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="ProgramImagesFolder" FileSource="$(var.ProgramImagesComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--ProgramImagesComponentFiles_Component_Def-->
</DirectoryRef>
<!-- Shell Plugin -->
<DirectoryRef Id="ShellPluginFolder" FileSource="$(var.ShellComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--ShellComponentFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="ShellImagesFolder" FileSource="$(var.ShellImagesComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--ShellImagesComponentFiles_Component_Def-->
</DirectoryRef>
<!-- Indexer Plugin -->
<DirectoryRef Id="IndexerPluginFolder" FileSource="$(var.IndexerComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--IndexerComponentFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="IndexerImagesFolder" FileSource="$(var.IndexerImagesComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--IndexerImagesComponentFiles_Component_Def-->
</DirectoryRef>
<!-- UnitConverter Plugin -->
<DirectoryRef Id="UnitConverterPluginFolder" FileSource="$(var.UnitConvCompFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--UnitConvCompFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="UnitConverterImagesFolder" FileSource="$(var.UnitConvImagesCompFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--UnitConvImagesCompFiles_Component_Def-->
</DirectoryRef>
<!-- WebSearch Plugin -->
<DirectoryRef Id="WebSearchPluginFolder" FileSource="$(var.WebSrchCompFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--WebSrchCompFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="WebSearchImagesFolder" FileSource="$(var.WebSrchImagesCompFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--WebSrchImagesCompFiles_Component_Def-->
</DirectoryRef>
<!-- History Plugin -->
<DirectoryRef Id="HistoryPluginFolder" FileSource="$(var.HistoryPluginComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--HistoryPluginComponentFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="HistoryImagesFolder" FileSource="$(var.HistoryPluginImagesComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--HistoryPluginImagesComponentFiles_Component_Def-->
</DirectoryRef>
<!-- Uri Plugin -->
<DirectoryRef Id="UriPluginFolder" FileSource="$(var.UriComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--UriComponentFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="UriImagesFolder" FileSource="$(var.UriImagesComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--UriImagesComponentFiles_Component_Def-->
</DirectoryRef>
<!-- VSCodeWorkspaces Plugin -->
<DirectoryRef Id="VSCodeWorkspacesPluginFolder" FileSource="$(var.VSCWrkCompFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--VSCWrkCompFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="VSCodeWorkspaceImagesFolder" FileSource="$(var.VSCWrkImagesCompFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--VSCWrkImagesCompFiles_Component_Def-->
</DirectoryRef>
<!-- WindowWalker Plugin -->
<DirectoryRef Id="WindowWalkerPluginFolder" FileSource="$(var.WindowWlkrCompFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--WindowWlkrCompFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="WindowWalkerImagesFolder" FileSource="$(var.WindowWlkrImagesCompFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--WindowWlkrImagesCompFiles_Component_Def-->
</DirectoryRef>
<!-- OneNote Plugin -->
<DirectoryRef Id="OneNotePluginFolder" FileSource="$(var.OneNoteComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--OneNoteComponentFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="OneNoteImagesFolder" FileSource="$(var.OneNoteImagesComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--OneNoteImagesComponentFiles_Component_Def-->
</DirectoryRef>
<!-- Registry Plugin -->
<DirectoryRef Id="RegistryPluginFolder" FileSource="$(var.RegistryComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--RegistryComponentFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="RegistryImagesFolder" FileSource="$(var.RegistryImagesComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--RegistryImagesComponentFiles_Component_Def-->
</DirectoryRef>
<!-- Service Plugin -->
<DirectoryRef Id="ServicePluginFolder" FileSource="$(var.ServiceComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--ServiceComponentFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="ServiceImagesFolder" FileSource="$(var.ServiceImagesComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--ServiceImagesComponentFiles_Component_Def-->
</DirectoryRef>
<!-- System Plugin -->
<DirectoryRef Id="SystemPluginFolder" FileSource="$(var.SystemComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--SystemComponentFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="SystemImagesFolder" FileSource="$(var.SystemImagesComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--SystemImagesComponentFiles_Component_Def-->
</DirectoryRef>
<!-- TimeDate Plugin -->
<DirectoryRef Id="TimeDatePluginFolder" FileSource="$(var.TimeDateComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--TimeDateComponentFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="TimeDateImagesFolder" FileSource="$(var.TimeDateImagesComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--TimeDateImagesComponentFiles_Component_Def-->
</DirectoryRef>
<!-- WindowsSettings Plugin -->
<DirectoryRef Id="WindowsSettingsPluginFolder" FileSource="$(var.WinSetCmpFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--WinSetCmpFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="WindowsSettingsImagesFolder" FileSource="$(var.WinSetImagesCmpFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--WinSetImagesCmpFiles_Component_Def-->
</DirectoryRef>
<!-- WindowsTerminal Plugin -->
<DirectoryRef Id="WindowsTerminalPluginFolder" FileSource="$(var.WinTermCmpFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--WinTermCmpFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="WindowsTerminalImagesFolder" FileSource="$(var.WinTermImagesCmpFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--WinTermImagesCmpFiles_Component_Def-->
</DirectoryRef>
<!-- PowerToys Plugin -->
<DirectoryRef Id="PowerToysPluginFolder" FileSource="$(var.PowerToysCmpFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--PowerToysCmpFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="PowerToysImagesFolder" FileSource="$(var.PowerToysImagesCmpFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--PowerToysImagesCmpFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="ValueGeneratorPluginFolder" FileSource="$(var.ValueGeneratorCmpFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--ValueGeneratorCmpFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="ValueGeneratorImagesFolder" FileSource="$(var.ValueGeneratorImagesCmpFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--ValueGeneratorImagesCmpFiles_Component_Def-->
</DirectoryRef>
<ComponentGroup Id="RunComponentGroup">
<Component Id="RemoveLauncherFolder" Guid="3FFDC0B6-82BC-4C57-AEB1-C710DB108C23" Directory="INSTALLFOLDER">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveLauncherFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderLauncherImagesFolder" Directory="LauncherImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderLauncherPluginsFolder" Directory="LauncherPluginsFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderCalculatorPluginFolder" Directory="CalculatorPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderCalculatorImagesFolder" Directory="CalculatorImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderFolderPluginFolder" Directory="FolderPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderFolderPluginImagesFolder" Directory="FolderPluginImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderProgramPluginFolder" Directory="ProgramPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderProgramImagesFolder" Directory="ProgramImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderShellPluginFolder" Directory="ShellPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderShellImagesFolder" Directory="ShellImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderIndexerPluginFolder" Directory="IndexerPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderIndexerImagesFolder" Directory="IndexerImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderUnitConverterPluginFolder" Directory="UnitConverterPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderUnitConverterImagesFolder" Directory="UnitConverterImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderWebSearchPluginFolder" Directory="WebSearchPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderWebSearchImagesFolder" Directory="WebSearchImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderHistoryPluginFolder" Directory="HistoryPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderHistoryImagesFolder" Directory="HistoryImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderUriPluginFolder" Directory="UriPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderUriImagesFolder" Directory="UriImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderVSCodeWorkspacesPluginFolder" Directory="VSCodeWorkspacesPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderVSCodeWorkspaceImagesFolder" Directory="VSCodeWorkspaceImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderWindowWalkerPluginFolder" Directory="WindowWalkerPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderWindowWalkerImagesFolder" Directory="WindowWalkerImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderOneNotePluginFolder" Directory="OneNotePluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderOneNoteImagesFolder" Directory="OneNoteImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderRegistryPluginFolder" Directory="RegistryPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderRegistryImagesFolder" Directory="RegistryImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderServicePluginFolder" Directory="ServicePluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderServiceImagesFolder" Directory="ServiceImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderSystemPluginFolder" Directory="SystemPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderSystemImagesFolder" Directory="SystemImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderTimeDatePluginFolder" Directory="TimeDatePluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderTimeDateImagesFolder" Directory="TimeDateImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderWindowsSettingsPluginFolder" Directory="WindowsSettingsPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderWindowsSettingsImagesFolder" Directory="WindowsSettingsImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderWindowsTerminalPluginFolder" Directory="WindowsTerminalPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderWindowsTerminalImagesFolder" Directory="WindowsTerminalImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderPowerToysPluginFolder" Directory="PowerToysPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderPowerToysImagesFolder" Directory="PowerToysImagesFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderValueGeneratorPluginFolder" Directory="ValueGeneratorPluginFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderValueGeneratorImagesFolder" Directory="ValueGeneratorImagesFolder" On="uninstall" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,78 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define SettingsV2AssetsFiles=?>
<?define SettingsV2AssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\Settings\?>
<?define SettingsV2AssetsModulesFiles=?>
<?define SettingsV2AssetsModulesFilesPath=$(var.BinDir)WinUI3Apps\Assets\Settings\Modules\?>
<?define SettingsV2OOBEAssetsModulesFiles=?>
<?define SettingsV2OOBEAssetsModulesFilesPath=$(var.BinDir)WinUI3Apps\Assets\Settings\Modules\OOBE\?>
<?define SettingsV2OOBEAssetsFluentIconsFiles=?>
<?define SettingsV2OOBEAssetsFluentIconsFilesPath=$(var.BinDir)WinUI3Apps\Assets\Settings\Icons\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<Directory Id="SettingsV2AssetsInstallFolder" Name="Settings">
<Directory Id="SettingsAppAssetsScriptsFolder" Name="Scripts" />
<Directory Id="SettingsV2OOBEAssetsFluentIconsInstallFolder" Name="Icons" />
<Directory Id="SettingsV2AssetsModulesInstallFolder" Name="Modules">
<Directory Id="SettingsV2OOBEAssetsModulesInstallFolder" Name="OOBE" />
</Directory>
</Directory>
</DirectoryRef>
<DirectoryRef Id="SettingsV2AssetsInstallFolder" FileSource="$(var.SettingsV2AssetsFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--SettingsV2AssetsFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="SettingsV2AssetsModulesInstallFolder" FileSource="$(var.SettingsV2AssetsModulesFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--SettingsV2AssetsModulesFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="SettingsV2OOBEAssetsModulesInstallFolder" FileSource="$(var.SettingsV2OOBEAssetsModulesFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--SettingsV2OOBEAssetsModulesFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="SettingsV2OOBEAssetsFluentIconsInstallFolder" FileSource="$(var.SettingsV2OOBEAssetsFluentIconsFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--SettingsV2OOBEAssetsFluentIconsFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="SettingsAppAssetsScriptsFolder" FileSource="$(var.SettingsV2AssetsFilesPath)\Scripts\">
<Component Id="CommandNotFound_Scripts" Guid="898EFA1E-EDD3-4F4B-8C7F-4A14B0D05B02" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="CommandNotFound_Scripts" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="CommandNotFound_Scripts_EnableModule.ps1" Source="$(var.SettingsV2AssetsFilesPath)\Scripts\EnableModule.ps1" />
<File Id="CommandNotFound_Scripts_UpgradeModule.ps1" Source="$(var.SettingsV2AssetsFilesPath)\Scripts\UpgradeModule.ps1" />
<File Id="CommandNotFound_Scripts_DisableModule.ps1" Source="$(var.SettingsV2AssetsFilesPath)\Scripts\DisableModule.ps1" />
<File Id="CommandNotFound_Scripts_CheckCmdNotFoundRequirements.ps1" Source="$(var.SettingsV2AssetsFilesPath)\Scripts\CheckCmdNotFoundRequirements.ps1" />
<File Id="CommandNotFound_Scripts_InstallWinGetClientModule.ps1" Source="$(var.SettingsV2AssetsFilesPath)\Scripts\InstallWinGetClientModule.ps1" />
<File Id="CommandNotFound_Scripts_InstallPowerShell7.ps1" Source="$(var.SettingsV2AssetsFilesPath)\Scripts\InstallPowerShell7.ps1" />
</Component>
</DirectoryRef>
<ComponentGroup Id="SettingsComponentGroup">
<Component Id="RemoveSettingsFolder" Guid="2D3AEF68-4E5A-4FF9-A5C0-9E53391AC754" Directory="SettingsV2AssetsInstallFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveSettingsFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderSettingsV2AssetsInstallFolder" Directory="SettingsV2AssetsInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderSettingsV2OOBEAssetsFluentIconsInstallFolder" Directory="SettingsV2OOBEAssetsFluentIconsInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderSettingsV2AssetsModulesInstallFolder" Directory="SettingsV2AssetsModulesInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderSettingsV2OOBEAssetsModulesInstallFolder" Directory="SettingsV2OOBEAssetsModulesInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderSettingsAppAssetsScriptsFolder" Directory="SettingsAppAssetsScriptsFolder" On="uninstall" />
</Component>
<ComponentRef Id="CommandNotFound_Scripts" />
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,29 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define ShortcutGuideSvgFiles=?>
<?define ShortcutGuideSvgFilesPath=$(var.BinDir)\Assets\ShortcutGuide\?>
<Fragment>
<!-- Shortcut guide files -->
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="ShortcutGuideSvgsInstallFolder" Name="ShortcutGuide" />
</DirectoryRef>
<DirectoryRef Id="ShortcutGuideSvgsInstallFolder" FileSource="$(var.ShortcutGuideSvgFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--ShortcutGuideSvgFiles_Component_Def-->
</DirectoryRef>
<!-- Shortcut guide -->
<ComponentGroup Id="ShortcutGuideComponentGroup">
<Component Id="RemoveShortcutGuideFolder" Guid="AD1ABC55-B593-4A60-A86A-BA8C0ED493A5" Directory="ShortcutGuideSvgsInstallFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveShortcutGuideFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderShortcutGuideSvgsInstallFolder" Directory="ShortcutGuideSvgsInstallFolder" On="uninstall" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,33 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<Fragment>
<DirectoryRef Id="ToolsFolder">
<Component Id="BugReportTool_exe" Guid="370D0C28-F423-4A12-9A64-6BAB57C7E5C3" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="BugReportTool_exe" Value="" KeyPath="yes" />
</RegistryKey>
<File Source="$(var.BinDir)Tools\PowerToys.BugReportTool.exe" Id="BugReportTool.exe" Checksum="yes" />
</Component>
<Component Id="StylesReportTool_exe" Guid="9D348A78-38A0-4FDC-8D16-BDB0178E5F1E" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="StylesReportTool_exe" Value="" KeyPath="yes" />
</RegistryKey>
<File Source="$(var.BinDir)StylesReportTool\PowerToys.StylesReportTool.exe" Id="StylesReportTool.exe" Checksum="yes" />
</Component>
</DirectoryRef>
<ComponentGroup Id="ToolComponentGroup">
<Component Id="RemoveToolsFolder" Guid="0402A3E8-1B4F-4762-9CCF-2267BCF8B6EE" Directory="ToolsFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveToolsFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderToolsFolder" Directory="ToolsFolder" On="uninstall" />
</Component>
<ComponentRef Id="BugReportTool_exe" />
<ComponentRef Id="StylesReportTool_exe" />
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,461 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<!-- Localization languages shipped with WinAppSDK. We should ship these as well. -->
<?define WinAppSDKLocLanguageList = af-ZA;ar-SA;az-Latn-AZ;bg-BG;bs-Latn-BA;ca-ES;cs-CZ;cy-GB;da-DK;de-DE;el-GR;en-GB;en-us;es-ES;es-MX;et-EE;eu-ES;fa-IR;fi-FI;fr-CA;fr-FR;gl-ES;he-IL;hi-IN;hr-HR;hu-HU;id-ID;is-IS;it-IT;ja-JP;ka-GE;kk-KZ;ko-KR;lt-LT;lv-LV;ms-MY;nb-NO;nl-NL;nn-NO;pl-PL;pt-BR;pt-PT;ro-RO;ru-RU;sk-SK;sl-SI;sq-AL;sr-Cyrl-RS;sr-Latn-RS;sv-SE;th-TH;tr-TR;uk-UA;vi-VN;zh-CN;zh-TW?>
<Fragment>
<DirectoryRef Id="WinUI3AppsMicrosoftUIXamlAssetsInstallFolder" FileSource="$(var.BinDir)WinUI3Apps\Microsoft.UI.Xaml\Assets">
<Component Id="WinUI3AppsMicrosoftUIXamlAssets_NoiseAsset_256x256_PNG.png" Guid="39889494-838A-4B9A-BD0A-105A1F0161BF" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="WinUI3AppsMicrosoftUIXamlAssets_NoiseAsset_256x256_PNG" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="WinUI3AppsMicrosoftUIXamlAssetsFile_NoiseAsset_256x256_PNG.png" Source="$(var.BinDir)WinUI3Apps\Microsoft.UI.Xaml\Assets\NoiseAsset_256x256_PNG.png" />
</Component>
<Component Id="WinUI3AppsMicrosoftUIXamlAssets_map.html" Guid="A970464C-A5BC-43DB-ACB3-7D83CF3047B3" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="WinUI3AppsMicrosoftUIXamlAssets_map" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="WinUI3AppsMicrosoftUIXamlAssetsFile_map.html" Source="$(var.BinDir)WinUI3Apps\Microsoft.UI.Xaml\Assets\map.html" />
</Component>
</DirectoryRef>
<DirectoryRef Id="WinUI3AppsInstallFolder">
<?foreach Language in $(var.WinAppSDKLocLanguageList)?>
<?if $(var.Language) = af-ZA?>
<?define IdSafeLanguage = af_ZA?>
<?elseif $(var.Language) = ar-SA?>
<?define IdSafeLanguage = ar_SA?>
<?elseif $(var.Language) = az-Latn-AZ?>
<?define IdSafeLanguage = az_Latn_AZ?>
<?elseif $(var.Language) = bg-BG?>
<?define IdSafeLanguage = bg_BG?>
<?elseif $(var.Language) = bs-Latn-BA?>
<?define IdSafeLanguage = bs_Latn_BA?>
<?elseif $(var.Language) = ca-ES?>
<?define IdSafeLanguage = ca_ES?>
<?elseif $(var.Language) = cs-CZ?>
<?define IdSafeLanguage = cs_CZ?>
<?elseif $(var.Language) = cy-GB?>
<?define IdSafeLanguage = cy_GB?>
<?elseif $(var.Language) = da-DK?>
<?define IdSafeLanguage = da_DK?>
<?elseif $(var.Language) = de-DE?>
<?define IdSafeLanguage = de_DE?>
<?elseif $(var.Language) = el-GR?>
<?define IdSafeLanguage = el_GR?>
<?elseif $(var.Language) = en-GB?>
<?define IdSafeLanguage = en_GB?>
<?elseif $(var.Language) = en-us?>
<?define IdSafeLanguage = en_us?>
<?elseif $(var.Language) = es-ES?>
<?define IdSafeLanguage = es_ES?>
<?elseif $(var.Language) = es-MX?>
<?define IdSafeLanguage = es_MX?>
<?elseif $(var.Language) = et-EE?>
<?define IdSafeLanguage = et_EE?>
<?elseif $(var.Language) = eu-ES?>
<?define IdSafeLanguage = eu_ES?>
<?elseif $(var.Language) = fa-IR?>
<?define IdSafeLanguage = fa_IR?>
<?elseif $(var.Language) = fi-FI?>
<?define IdSafeLanguage = fi_FI?>
<?elseif $(var.Language) = fr-CA?>
<?define IdSafeLanguage = fr_CA?>
<?elseif $(var.Language) = fr-FR?>
<?define IdSafeLanguage = fr_FR?>
<?elseif $(var.Language) = gl-ES?>
<?define IdSafeLanguage = gl_ES?>
<?elseif $(var.Language) = he-IL?>
<?define IdSafeLanguage = he_IL?>
<?elseif $(var.Language) = hi-IN?>
<?define IdSafeLanguage = hi_IN?>
<?elseif $(var.Language) = hr-HR?>
<?define IdSafeLanguage = hr_HR?>
<?elseif $(var.Language) = hu-HU?>
<?define IdSafeLanguage = hu_HU?>
<?elseif $(var.Language) = id-ID?>
<?define IdSafeLanguage = id_ID?>
<?elseif $(var.Language) = is-IS?>
<?define IdSafeLanguage = is_IS?>
<?elseif $(var.Language) = it-IT?>
<?define IdSafeLanguage = it_IT?>
<?elseif $(var.Language) = ja-JP?>
<?define IdSafeLanguage = ja_JP?>
<?elseif $(var.Language) = ka-GE?>
<?define IdSafeLanguage = ka_GE?>
<?elseif $(var.Language) = kk-KZ?>
<?define IdSafeLanguage = kk_KZ?>
<?elseif $(var.Language) = ko-KR?>
<?define IdSafeLanguage = ko_KR?>
<?elseif $(var.Language) = lt-LT?>
<?define IdSafeLanguage = lt_LT?>
<?elseif $(var.Language) = lv-LV?>
<?define IdSafeLanguage = lv_LV?>
<?elseif $(var.Language) = ms-MY?>
<?define IdSafeLanguage = ms_MY?>
<?elseif $(var.Language) = nb-NO?>
<?define IdSafeLanguage = nb_NO?>
<?elseif $(var.Language) = nl-NL?>
<?define IdSafeLanguage = nl_NL?>
<?elseif $(var.Language) = nn-NO?>
<?define IdSafeLanguage = nn_NO?>
<?elseif $(var.Language) = pl-PL?>
<?define IdSafeLanguage = pl_PL?>
<?elseif $(var.Language) = pt-BR?>
<?define IdSafeLanguage = pt_BR?>
<?elseif $(var.Language) = pt-PT?>
<?define IdSafeLanguage = pt_PT?>
<?elseif $(var.Language) = ro-RO?>
<?define IdSafeLanguage = ro_RO?>
<?elseif $(var.Language) = ru-RU?>
<?define IdSafeLanguage = ru_RU?>
<?elseif $(var.Language) = sk-SK?>
<?define IdSafeLanguage = sk_SK?>
<?elseif $(var.Language) = sl-SI?>
<?define IdSafeLanguage = sl_SI?>
<?elseif $(var.Language) = sq-AL?>
<?define IdSafeLanguage = sq_AL?>
<?elseif $(var.Language) = sr-Cyrl-RS?>
<?define IdSafeLanguage = sr_Cyrl_RS?>
<?elseif $(var.Language) = sr-Latn-RS?>
<?define IdSafeLanguage = sr_Latn_RS?>
<?elseif $(var.Language) = sv-SE?>
<?define IdSafeLanguage = sv_SE?>
<?elseif $(var.Language) = th-TH?>
<?define IdSafeLanguage = th_TH?>
<?elseif $(var.Language) = tr-TR?>
<?define IdSafeLanguage = tr_TR?>
<?elseif $(var.Language) = uk-UA?>
<?define IdSafeLanguage = uk_UA?>
<?elseif $(var.Language) = vi-VN?>
<?define IdSafeLanguage = vi_VN?>
<?elseif $(var.Language) = zh-CN?>
<?define IdSafeLanguage = zh_CN?>
<?elseif $(var.Language) = zh-TW?>
<?define IdSafeLanguage = zh_TW?>
<?else?>
<?define IdSafeLanguage = $(var.Language)?>
<?endif?>
<Directory Id="WinAppSDKLoc$(var.IdSafeLanguage)WinUI3AppsInstallFolder" Name="$(var.Language)" />
<?undef IdSafeLanguage?>
<?endforeach?>
</DirectoryRef>
<ComponentGroup Id="WindowsAppSDKComponentGroup">
<?foreach Language in $(var.WinAppSDKLocLanguageList)?>
<?if $(var.Language) = af-ZA?>
<?define CompGUIDPrefix = 3C8E6C25-772A-4686-8FE3-8BE63F8D19?>
<?define IdSafeLanguage = af_ZA?>
<?elseif $(var.Language) = ar-SA?>
<?define CompGUIDPrefix = E2E65A7F-48CA-49E1-847B-5B1116D32E?>
<?define IdSafeLanguage = ar_SA?>
<?elseif $(var.Language) = az-Latn-AZ?>
<?define CompGUIDPrefix = 601F5B70-D386-4F68-B958-9D3F07167C?>
<?define IdSafeLanguage = az_Latn_AZ?>
<?elseif $(var.Language) = bg-BG?>
<?define CompGUIDPrefix = 9DD6C8F9-8599-46E4-B9B6-8B8CB095F9?>
<?define IdSafeLanguage = bg_BG?>
<?elseif $(var.Language) = bs-Latn-BA?>
<?define CompGUIDPrefix = CF68A082-D286-4556-BDF1-FBD9C7FE37?>
<?define IdSafeLanguage = bs_Latn_BA?>
<?elseif $(var.Language) = ca-ES?>
<?define CompGUIDPrefix = 298A66A5-9683-4ABF-A1C5-D97DA031B3?>
<?define IdSafeLanguage = ca_ES?>
<?elseif $(var.Language) = cs-CZ?>
<?define CompGUIDPrefix = EDEC8BF7-6602-47E5-AC04-3D392BDD83?>
<?define IdSafeLanguage = cs_CZ?>
<?elseif $(var.Language) = cy-GB?>
<?define CompGUIDPrefix = 6E328AD9-58D4-4615-8A64-9710D5EA81?>
<?define IdSafeLanguage = cy_GB?>
<?elseif $(var.Language) = da-DK?>
<?define CompGUIDPrefix = BC5D9E5C-D4B8-4CEB-A944-1A34FD46E5?>
<?define IdSafeLanguage = da_DK?>
<?elseif $(var.Language) = de-DE?>
<?define CompGUIDPrefix = 4E1F60E3-6257-4492-AD9E-22124393F7?>
<?define IdSafeLanguage = de_DE?>
<?elseif $(var.Language) = el-GR?>
<?define CompGUIDPrefix = 0A340858-D5DF-44D1-90F9-E5435128D5?>
<?define IdSafeLanguage = el_GR?>
<?elseif $(var.Language) = en-GB?>
<?define CompGUIDPrefix = 2F06617A-9700-4223-A309-58F2C1DA88?>
<?define IdSafeLanguage = en_GB?>
<?elseif $(var.Language) = en-us?>
<?define CompGUIDPrefix = A817585B-4AD2-4030-844B-1B2975DE6C?>
<?define IdSafeLanguage = en_us?>
<?elseif $(var.Language) = es-ES?>
<?define CompGUIDPrefix = 987CE029-212B-40AF-956E-D0D76F5EE8?>
<?define IdSafeLanguage = es_ES?>
<?elseif $(var.Language) = es-MX?>
<?define CompGUIDPrefix = 9E806BDC-CB61-43C5-A314-6CB3C7CE17?>
<?define IdSafeLanguage = es_MX?>
<?elseif $(var.Language) = et-EE?>
<?define CompGUIDPrefix = 07C20887-C0FD-4686-8D6C-CD70D4099E?>
<?define IdSafeLanguage = et_EE?>
<?elseif $(var.Language) = eu-ES?>
<?define CompGUIDPrefix = 43FDBB2A-DCF0-4E5C-98B2-DF5F8A7ABC?>
<?define IdSafeLanguage = eu_ES?>
<?elseif $(var.Language) = fa-IR?>
<?define CompGUIDPrefix = 9A709AF1-A967-4188-9A6E-0EE1A01091?>
<?define IdSafeLanguage = fa_IR?>
<?elseif $(var.Language) = fi-FI?>
<?define CompGUIDPrefix = 7C933CD2-E937-4BEF-835D-7D27660BF1?>
<?define IdSafeLanguage = fi_FI?>
<?elseif $(var.Language) = fr-CA?>
<?define CompGUIDPrefix = 547742D0-6025-43A1-B37A-D7FE1C7AB7?>
<?define IdSafeLanguage = fr_CA?>
<?elseif $(var.Language) = fr-FR?>
<?define CompGUIDPrefix = 5C208D3F-0A62-4DD3-9A3C-D5F5931BC0?>
<?define IdSafeLanguage = fr_FR?>
<?elseif $(var.Language) = gl-ES?>
<?define CompGUIDPrefix = CC8360F1-B761-485F-AE34-D5E76C2133?>
<?define IdSafeLanguage = gl_ES?>
<?elseif $(var.Language) = he-IL?>
<?define CompGUIDPrefix = 5D3703BA-B7F8-45E6-8727-E184890524?>
<?define IdSafeLanguage = he_IL?>
<?elseif $(var.Language) = hi-IN?>
<?define CompGUIDPrefix = 85D55059-CFE3-47CD-A000-D795DCD0FF?>
<?define IdSafeLanguage = hi_IN?>
<?elseif $(var.Language) = hr-HR?>
<?define CompGUIDPrefix = 2BD6767A-A7C5-440B-BDC7-EA505F6B69?>
<?define IdSafeLanguage = hr_HR?>
<?elseif $(var.Language) = hu-HU?>
<?define CompGUIDPrefix = FB99F97C-A1C3-407E-AA4A-264621D1C4?>
<?define IdSafeLanguage = hu_HU?>
<?elseif $(var.Language) = id-ID?>
<?define CompGUIDPrefix = CBBA3A3A-B336-4CB0-ACB1-4BB666855D?>
<?define IdSafeLanguage = id_ID?>
<?elseif $(var.Language) = is-IS?>
<?define CompGUIDPrefix = 57E8C11E-6D1F-4F29-A440-9F6175C607?>
<?define IdSafeLanguage = is_IS?>
<?elseif $(var.Language) = it-IT?>
<?define CompGUIDPrefix = 1C4F8911-96E4-4903-A92B-CD48BF09DE?>
<?define IdSafeLanguage = it_IT?>
<?elseif $(var.Language) = ja-JP?>
<?define CompGUIDPrefix = EF51BC22-3D3E-4767-8558-BE43F729FD?>
<?define IdSafeLanguage = ja_JP?>
<?elseif $(var.Language) = ka-GE?>
<?define CompGUIDPrefix = 7F625700-74B5-4F55-8F80-E86B4DC784?>
<?define IdSafeLanguage = ka_GE?>
<?elseif $(var.Language) = kk-KZ?>
<?define CompGUIDPrefix = 3F4019C3-2FA3-48BA-9096-C02E6679B5?>
<?define IdSafeLanguage = kk_KZ?>
<?elseif $(var.Language) = ko-KR?>
<?define CompGUIDPrefix = F6C1AAAD-1917-48AC-B89A-3953D01C20?>
<?define IdSafeLanguage = ko_KR?>
<?elseif $(var.Language) = lt-LT?>
<?define CompGUIDPrefix = 6E48287B-937D-43D0-A7FB-161717D5E2?>
<?define IdSafeLanguage = lt_LT?>
<?elseif $(var.Language) = lv-LV?>
<?define CompGUIDPrefix = F2E02A03-361C-43FA-ACFA-53369774A6?>
<?define IdSafeLanguage = lv_LV?>
<?elseif $(var.Language) = ms-MY?>
<?define CompGUIDPrefix = 4D141E3C-7F30-4689-9D8D-36C1245845?>
<?define IdSafeLanguage = ms_MY?>
<?elseif $(var.Language) = nb-NO?>
<?define CompGUIDPrefix = 939F5123-0700-4C0C-891F-04E331FC5E?>
<?define IdSafeLanguage = nb_NO?>
<?elseif $(var.Language) = nl-NL?>
<?define CompGUIDPrefix = 5E97EAE0-F207-47F1-B4BD-12113D983C?>
<?define IdSafeLanguage = nl_NL?>
<?elseif $(var.Language) = nn-NO?>
<?define CompGUIDPrefix = A1E74004-671D-46DC-AECD-826D068B26?>
<?define IdSafeLanguage = nn_NO?>
<?elseif $(var.Language) = pl-PL?>
<?define CompGUIDPrefix = E1D983A8-D406-4C60-AE61-9F362CBEF2?>
<?define IdSafeLanguage = pl_PL?>
<?elseif $(var.Language) = pt-BR?>
<?define CompGUIDPrefix = E6E4AF39-7758-4F52-B6CA-CD6D4513B7?>
<?define IdSafeLanguage = pt_BR?>
<?elseif $(var.Language) = pt-PT?>
<?define CompGUIDPrefix = 8F4BB964-3EB7-4D91-816D-D0E25D69D0?>
<?define IdSafeLanguage = pt_PT?>
<?elseif $(var.Language) = ro-RO?>
<?define CompGUIDPrefix = 8324BA46-F54F-4696-B348-3193856660?>
<?define IdSafeLanguage = ro_RO?>
<?elseif $(var.Language) = ru-RU?>
<?define CompGUIDPrefix = 13BB6E4C-A928-4FD5-A0CA-CE45B8B857?>
<?define IdSafeLanguage = ru_RU?>
<?elseif $(var.Language) = sk-SK?>
<?define CompGUIDPrefix = 63D22C1D-D00A-4194-B64F-9CA2DF93D5?>
<?define IdSafeLanguage = sk_SK?>
<?elseif $(var.Language) = sl-SI?>
<?define CompGUIDPrefix = C007A438-5EBD-4E2A-9E03-8C9521762B?>
<?define IdSafeLanguage = sl_SI?>
<?elseif $(var.Language) = sq-AL?>
<?define CompGUIDPrefix = 9058E23A-A9DD-45A2-A85C-5DE97D0F2A?>
<?define IdSafeLanguage = sq_AL?>
<?elseif $(var.Language) = sr-Cyrl-RS?>
<?define CompGUIDPrefix = 7D21E8FC-368D-4393-A055-44D742C7A0?>
<?define IdSafeLanguage = sr_Cyrl_RS?>
<?elseif $(var.Language) = sr-Latn-RS?>
<?define CompGUIDPrefix = F8B974A0-4BEA-44F7-8603-7D9BE3003F?>
<?define IdSafeLanguage = sr_Latn_RS?>
<?elseif $(var.Language) = sv-SE?>
<?define CompGUIDPrefix = A56ECD85-B52C-421D-8C8A-CBADE0A92F?>
<?define IdSafeLanguage = sv_SE?>
<?elseif $(var.Language) = th-TH?>
<?define CompGUIDPrefix = C71B1361-A45E-42AB-8A20-95ED3AF74E?>
<?define IdSafeLanguage = th_TH?>
<?elseif $(var.Language) = tr-TR?>
<?define CompGUIDPrefix = 025B5CE3-6470-4C01-A606-DFC74A47E0?>
<?define IdSafeLanguage = tr_TR?>
<?elseif $(var.Language) = uk-UA?>
<?define CompGUIDPrefix = AD78BE3F-6A3B-414D-AAEC-BC4C801B64?>
<?define IdSafeLanguage = uk_UA?>
<?elseif $(var.Language) = vi-VN?>
<?define CompGUIDPrefix = 9F21001A-87DA-4D9E-A298-FEDC375D0C?>
<?define IdSafeLanguage = vi_VN?>
<?elseif $(var.Language) = zh-CN?>
<?define CompGUIDPrefix = C8BB7DD7-EB7B-478E-925D-6F64107590?>
<?define IdSafeLanguage = zh_CN?>
<?elseif $(var.Language) = zh-TW?>
<?define CompGUIDPrefix = E472BBC5-604D-44A2-8B95-3A456CFF56?>
<?define IdSafeLanguage = zh_TW?>
<?else?>
<?define IdSafeLanguage = $(var.Language)?>
<?define CompGUIDPrefix = 51B656B3-2D45-49D8-9871-F0A1C8BEEE?>
<?endif?>
<Component Id="WinUI3Apps_WinAppSDKLoc_$(var.IdSafeLanguage)_Component" Directory="WinAppSDKLoc$(var.IdSafeLanguage)WinUI3AppsInstallFolder" Guid="$(var.CompGUIDPrefix)01">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="WinUI3Apps_WinAppSDKLoc_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="WinUI3Apps_WinAppSDKLoc_$(var.IdSafeLanguage)_XamlMui_File" Source="$(var.BinDir)WinUI3Apps\$(var.Language)\Microsoft.ui.xaml.dll.mui" />
<File Id="WinUI3Apps_WinAppSDKLoc_$(var.IdSafeLanguage)_XamlPhoneMui_File" Source="$(var.BinDir)WinUI3Apps\$(var.Language)\Microsoft.UI.Xaml.Phone.dll.mui" />
</Component>
<?undef IdSafeLanguage?>
<?undef CompGUIDPrefix?>
<?endforeach?>
<Component Id="RemoveWinAppSDKFolder" Guid="1BBAA49F-3B2E-455C-A615-EEB079CB9A8B" Directory="WinUI3AppsInstallFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveWinAppSDKFolder" Value="" KeyPath="yes" />
</RegistryKey>
<?foreach Language in $(var.WinAppSDKLocLanguageList)?>
<?if $(var.Language) = af-ZA?>
<?define IdSafeLanguage = af_ZA?>
<?elseif $(var.Language) = ar-SA?>
<?define IdSafeLanguage = ar_SA?>
<?elseif $(var.Language) = az-Latn-AZ?>
<?define IdSafeLanguage = az_Latn_AZ?>
<?elseif $(var.Language) = bg-BG?>
<?define IdSafeLanguage = bg_BG?>
<?elseif $(var.Language) = bs-Latn-BA?>
<?define IdSafeLanguage = bs_Latn_BA?>
<?elseif $(var.Language) = ca-ES?>
<?define IdSafeLanguage = ca_ES?>
<?elseif $(var.Language) = cs-CZ?>
<?define IdSafeLanguage = cs_CZ?>
<?elseif $(var.Language) = cy-GB?>
<?define IdSafeLanguage = cy_GB?>
<?elseif $(var.Language) = da-DK?>
<?define IdSafeLanguage = da_DK?>
<?elseif $(var.Language) = de-DE?>
<?define IdSafeLanguage = de_DE?>
<?elseif $(var.Language) = el-GR?>
<?define IdSafeLanguage = el_GR?>
<?elseif $(var.Language) = en-GB?>
<?define IdSafeLanguage = en_GB?>
<?elseif $(var.Language) = en-us?>
<?define IdSafeLanguage = en_us?>
<?elseif $(var.Language) = es-ES?>
<?define IdSafeLanguage = es_ES?>
<?elseif $(var.Language) = es-MX?>
<?define IdSafeLanguage = es_MX?>
<?elseif $(var.Language) = et-EE?>
<?define IdSafeLanguage = et_EE?>
<?elseif $(var.Language) = eu-ES?>
<?define IdSafeLanguage = eu_ES?>
<?elseif $(var.Language) = fa-IR?>
<?define IdSafeLanguage = fa_IR?>
<?elseif $(var.Language) = fi-FI?>
<?define IdSafeLanguage = fi_FI?>
<?elseif $(var.Language) = fr-CA?>
<?define IdSafeLanguage = fr_CA?>
<?elseif $(var.Language) = fr-FR?>
<?define IdSafeLanguage = fr_FR?>
<?elseif $(var.Language) = gl-ES?>
<?define IdSafeLanguage = gl_ES?>
<?elseif $(var.Language) = he-IL?>
<?define IdSafeLanguage = he_IL?>
<?elseif $(var.Language) = hi-IN?>
<?define IdSafeLanguage = hi_IN?>
<?elseif $(var.Language) = hr-HR?>
<?define IdSafeLanguage = hr_HR?>
<?elseif $(var.Language) = hu-HU?>
<?define IdSafeLanguage = hu_HU?>
<?elseif $(var.Language) = id-ID?>
<?define IdSafeLanguage = id_ID?>
<?elseif $(var.Language) = is-IS?>
<?define IdSafeLanguage = is_IS?>
<?elseif $(var.Language) = it-IT?>
<?define IdSafeLanguage = it_IT?>
<?elseif $(var.Language) = ja-JP?>
<?define IdSafeLanguage = ja_JP?>
<?elseif $(var.Language) = ka-GE?>
<?define IdSafeLanguage = ka_GE?>
<?elseif $(var.Language) = kk-KZ?>
<?define IdSafeLanguage = kk_KZ?>
<?elseif $(var.Language) = ko-KR?>
<?define IdSafeLanguage = ko_KR?>
<?elseif $(var.Language) = lt-LT?>
<?define IdSafeLanguage = lt_LT?>
<?elseif $(var.Language) = lv-LV?>
<?define IdSafeLanguage = lv_LV?>
<?elseif $(var.Language) = ms-MY?>
<?define IdSafeLanguage = ms_MY?>
<?elseif $(var.Language) = nb-NO?>
<?define IdSafeLanguage = nb_NO?>
<?elseif $(var.Language) = nl-NL?>
<?define IdSafeLanguage = nl_NL?>
<?elseif $(var.Language) = nn-NO?>
<?define IdSafeLanguage = nn_NO?>
<?elseif $(var.Language) = pl-PL?>
<?define IdSafeLanguage = pl_PL?>
<?elseif $(var.Language) = pt-BR?>
<?define IdSafeLanguage = pt_BR?>
<?elseif $(var.Language) = pt-PT?>
<?define IdSafeLanguage = pt_PT?>
<?elseif $(var.Language) = ro-RO?>
<?define IdSafeLanguage = ro_RO?>
<?elseif $(var.Language) = ru-RU?>
<?define IdSafeLanguage = ru_RU?>
<?elseif $(var.Language) = sk-SK?>
<?define IdSafeLanguage = sk_SK?>
<?elseif $(var.Language) = sl-SI?>
<?define IdSafeLanguage = sl_SI?>
<?elseif $(var.Language) = sq-AL?>
<?define IdSafeLanguage = sq_AL?>
<?elseif $(var.Language) = sr-Cyrl-RS?>
<?define IdSafeLanguage = sr_Cyrl_RS?>
<?elseif $(var.Language) = sr-Latn-RS?>
<?define IdSafeLanguage = sr_Latn_RS?>
<?elseif $(var.Language) = sv-SE?>
<?define IdSafeLanguage = sv_SE?>
<?elseif $(var.Language) = th-TH?>
<?define IdSafeLanguage = th_TH?>
<?elseif $(var.Language) = tr-TR?>
<?define IdSafeLanguage = tr_TR?>
<?elseif $(var.Language) = uk-UA?>
<?define IdSafeLanguage = uk_UA?>
<?elseif $(var.Language) = vi-VN?>
<?define IdSafeLanguage = vi_VN?>
<?elseif $(var.Language) = zh-CN?>
<?define IdSafeLanguage = zh_CN?>
<?elseif $(var.Language) = zh-TW?>
<?define IdSafeLanguage = zh_TW?>
<?else?>
<?define IdSafeLanguage = $(var.Language)?>
<?endif?>
<RemoveFolder Id="RemoveFolderWinAppSDKLoc$(var.IdSafeLanguage)WinUI3AppsInstallFolder" Directory="WinAppSDKLoc$(var.IdSafeLanguage)WinUI3AppsInstallFolder" On="uninstall" />
<?undef IdSafeLanguage?>
<?endforeach?>
<RemoveFolder Id="RemoveFolderWinUI3AppsMicrosoftUIXamlInstallFolder" Directory="WinUI3AppsMicrosoftUIXamlInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderWinUI3AppsMicrosoftUIXamlAssetsInstallFolder" Directory="WinUI3AppsMicrosoftUIXamlAssetsInstallFolder" On="uninstall" />
</Component>
<ComponentRef Id="WinUI3AppsMicrosoftUIXamlAssets_NoiseAsset_256x256_PNG.png" />
<ComponentRef Id="WinUI3AppsMicrosoftUIXamlAssets_map.html" />
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,18 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define WinUI3ApplicationsFiles=?>
<?define WinUI3ApplicationsFilesPath=$(var.BinDir)\WinUI3Apps\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsInstallFolder">
<!-- Generated by generateFileComponents.ps1 -->
<!--WinUI3ApplicationsFiles_Component_Def-->
</DirectoryRef>
<ComponentGroup Id="WinUI3ApplicationsComponentGroup">
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,29 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define WorkspacesImagesComponentFiles=?>
<?define WorkspacesImagesComponentFilesPath=$(var.BinDir)Assets\Workspaces\?>
<Fragment>
<!-- Shortcut guide files -->
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="WorkspacesAssetsInstallFolder" Name="Workspaces" />
</DirectoryRef>
<DirectoryRef Id="WorkspacesAssetsInstallFolder" FileSource="$(var.WorkspacesImagesComponentFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--WorkspacesImagesComponentFiles_Component_Def-->
</DirectoryRef>
<!-- Workspaces -->
<ComponentGroup Id="WorkspacesComponentGroup">
<Component Id="RemoveWorkspacesAssetsFolder" Guid="34FC1245-1197-4025-9CF1-A298D509C2CC" Directory="WorkspacesAssetsInstallFolder">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveWorkspacesAssetsFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderWorkspacesAssetsFolder" Directory="WorkspacesAssetsInstallFolder" On="uninstall" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -0,0 +1,323 @@
[CmdletBinding()]
Param(
[Parameter(Mandatory = $True, Position = 1)]
[string]$platform,
[Parameter(Mandatory = $False, Position = 2)]
[string]$installscopeperuser = "false"
)
Function Generate-FileList() {
[CmdletBinding()]
Param(
# Can be multiple files separated by ; as long as they're on the same directory
[Parameter(Mandatory = $True, Position = 1)]
[AllowEmptyString()]
[string]$fileDepsJson,
[Parameter(Mandatory = $True, Position = 2)]
[string]$fileListName,
[Parameter(Mandatory = $True, Position = 3)]
[string]$wxsFilePath,
# If there is no deps.json file, just pass path to files
[Parameter(Mandatory = $False, Position = 4)]
[string]$depsPath,
# launcher plugins are being loaded into launcher process,
# so there are some additional dependencies to skip
[Parameter(Mandatory = $False, Position = 5)]
[bool]$isLauncherPlugin
)
$fileWxs = Get-Content $wxsFilePath;
$fileExclusionList = @("*.pdb", "*.lastcodeanalysissucceeded", "createdump.exe", "powertoys.exe")
$fileInclusionList = @("*.dll", "*.exe", "*.json", "*.msix", "*.png", "*.gif", "*.ico", "*.cur", "*.svg", "index.html", "reg.js", "gitignore.js", "srt.js", "monacoSpecialLanguages.js", "customTokenThemeRules.js", "*.pri")
$dllsToIgnore = @("System.CodeDom.dll", "WindowsBase.dll")
if ($fileDepsJson -eq [string]::Empty) {
$fileDepsRoot = $depsPath
} else {
$multipleDepsJson = $fileDepsJson.Split(";")
foreach ( $singleDepsJson in $multipleDepsJson )
{
$fileDepsRoot = (Get-ChildItem $singleDepsJson).Directory.FullName
$depsJson = Get-Content $singleDepsJson | ConvertFrom-Json
$runtimeList = ([array]$depsJson.targets.PSObject.Properties)[-1].Value.PSObject.Properties | Where-Object {
$_.Name -match "runtimepack.*Runtime"
};
$runtimeList | ForEach-Object {
$_.Value.PSObject.Properties.Value | ForEach-Object {
$fileExclusionList += $_.PSObject.Properties.Name
}
}
}
}
$fileExclusionList = $fileExclusionList | Where-Object {$_ -notin $dllsToIgnore}
if ($isLauncherPlugin -eq $True) {
$fileInclusionList += @("*.deps.json")
$fileExclusionList += @("Ijwhost.dll", "PowerToys.Common.UI.dll", "PowerToys.GPOWrapper.dll", "PowerToys.GPOWrapperProjection.dll", "PowerToys.PowerLauncher.Telemetry.dll", "PowerToys.ManagedCommon.dll", "PowerToys.Settings.UI.Lib.dll", "Wox.Infrastructure.dll", "Wox.Plugin.dll")
}
$fileList = Get-ChildItem $fileDepsRoot -Include $fileInclusionList -Exclude $fileExclusionList -File -Name
$fileWxs = $fileWxs -replace "(<\?define $($fileListName)=)", "<?define $fileListName=$($fileList -join ';')"
Set-Content -Path $wxsFilePath -Value $fileWxs
}
Function Generate-FileComponents() {
[CmdletBinding()]
Param(
[Parameter(Mandatory = $True, Position = 1)]
[string]$fileListName,
[Parameter(Mandatory = $True, Position = 2)]
[string]$wxsFilePath,
[Parameter(Mandatory = $True, Position = 3)]
[string]$regroot
)
$wxsFile = Get-Content $wxsFilePath;
$wxsFile | ForEach-Object {
if ($_ -match "(<?define $fileListName=)(.*)\?>") {
[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', 'fileList',
Justification = 'variable is used in another scope')]
$fileList = $matches[2] -split ';'
return
}
}
$componentId = "$($fileListName)_Component"
$componentDefs = "`r`n"
$componentDefs +=
@"
<Component Id="$($componentId)" Guid="$((New-Guid).ToString().ToUpper())">
<RegistryKey Root="$($regroot)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="$($componentId)" Value="" KeyPath="yes"/>
</RegistryKey>`r`n
"@
foreach ($file in $fileList) {
$fileTmp = $file -replace "-", "_"
$componentDefs +=
@"
<File Id="$($fileListName)_File_$($fileTmp)" Source="`$(var.$($fileListName)Path)\$($file)" />`r`n
"@
}
$componentDefs +=
@"
</Component>`r`n
"@
$wxsFile = $wxsFile -replace "\s+(<!--$($fileListName)_Component_Def-->)", $componentDefs
$componentRef =
@"
<ComponentRef Id="$($componentId)" />
"@
$wxsFile = $wxsFile -replace "\s+(</ComponentGroup>)", "$componentRef`r`n </ComponentGroup>"
Set-Content -Path $wxsFilePath -Value $wxsFile
}
if ($platform -ceq "arm64") {
$platform = "ARM64"
}
if ($installscopeperuser -eq "true") {
$registryroot = "HKCU"
} else {
$registryroot = "HKLM"
}
#BaseApplications
Generate-FileList -fileDepsJson "" -fileListName BaseApplicationsFiles -wxsFilePath $PSScriptRoot\BaseApplications.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release"
Generate-FileComponents -fileListName "BaseApplicationsFiles" -wxsFilePath $PSScriptRoot\BaseApplications.wxs -regroot $registryroot
#WinUI3Applications
Generate-FileList -fileDepsJson "" -fileListName WinUI3ApplicationsFiles -wxsFilePath $PSScriptRoot\WinUI3Applications.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps"
Generate-FileComponents -fileListName "WinUI3ApplicationsFiles" -wxsFilePath $PSScriptRoot\WinUI3Applications.wxs -regroot $registryroot
#AdvancedPaste
Generate-FileList -fileDepsJson "" -fileListName AdvancedPasteAssetsFiles -wxsFilePath $PSScriptRoot\AdvancedPaste.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\AdvancedPaste"
Generate-FileComponents -fileListName "AdvancedPasteAssetsFiles" -wxsFilePath $PSScriptRoot\AdvancedPaste.wxs -regroot $registryroot
#AwakeFiles
Generate-FileList -fileDepsJson "" -fileListName AwakeImagesFiles -wxsFilePath $PSScriptRoot\Awake.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\Awake"
Generate-FileComponents -fileListName "AwakeImagesFiles" -wxsFilePath $PSScriptRoot\Awake.wxs -regroot $registryroot
#ColorPicker
Generate-FileList -fileDepsJson "" -fileListName ColorPickerAssetsFiles -wxsFilePath $PSScriptRoot\ColorPicker.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\ColorPicker"
Generate-FileComponents -fileListName "ColorPickerAssetsFiles" -wxsFilePath $PSScriptRoot\ColorPicker.wxs -regroot $registryroot
#Environment Variables
Generate-FileList -fileDepsJson "" -fileListName EnvironmentVariablesAssetsFiles -wxsFilePath $PSScriptRoot\EnvironmentVariables.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\EnvironmentVariables"
Generate-FileComponents -fileListName "EnvironmentVariablesAssetsFiles" -wxsFilePath $PSScriptRoot\EnvironmentVariables.wxs -regroot $registryroot
#FileExplorerAdd-ons
Generate-FileList -fileDepsJson "" -fileListName MonacoPreviewHandlerMonacoAssetsFiles -wxsFilePath $PSScriptRoot\FileExplorerPreview.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\Monaco"
Generate-FileList -fileDepsJson "" -fileListName MonacoPreviewHandlerCustomLanguagesFiles -wxsFilePath $PSScriptRoot\FileExplorerPreview.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\Monaco\customLanguages"
Generate-FileComponents -fileListName "MonacoPreviewHandlerMonacoAssetsFiles" -wxsFilePath $PSScriptRoot\FileExplorerPreview.wxs -regroot $registryroot
Generate-FileComponents -fileListName "MonacoPreviewHandlerCustomLanguagesFiles" -wxsFilePath $PSScriptRoot\FileExplorerPreview.wxs -regroot $registryroot
#FileLocksmith
Generate-FileList -fileDepsJson "" -fileListName FileLocksmithAssetsFiles -wxsFilePath $PSScriptRoot\FileLocksmith.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\FileLocksmith"
Generate-FileComponents -fileListName "FileLocksmithAssetsFiles" -wxsFilePath $PSScriptRoot\FileLocksmith.wxs -regroot $registryroot
#Hosts
Generate-FileList -fileDepsJson "" -fileListName HostsAssetsFiles -wxsFilePath $PSScriptRoot\Hosts.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\Hosts"
Generate-FileComponents -fileListName "HostsAssetsFiles" -wxsFilePath $PSScriptRoot\Hosts.wxs -regroot $registryroot
#ImageResizer
Generate-FileList -fileDepsJson "" -fileListName ImageResizerAssetsFiles -wxsFilePath $PSScriptRoot\ImageResizer.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\ImageResizer"
Generate-FileComponents -fileListName "ImageResizerAssetsFiles" -wxsFilePath $PSScriptRoot\ImageResizer.wxs -regroot $registryroot
#New+
Generate-FileList -fileDepsJson "" -fileListName NewPlusAssetsFiles -wxsFilePath $PSScriptRoot\NewPlus.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\NewPlus"
Generate-FileComponents -fileListName "NewPlusAssetsFiles" -wxsFilePath $PSScriptRoot\NewPlus.wxs -regroot $registryroot
#Peek
Generate-FileList -fileDepsJson "" -fileListName PeekAssetsFiles -wxsFilePath $PSScriptRoot\Peek.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\Peek\"
Generate-FileComponents -fileListName "PeekAssetsFiles" -wxsFilePath $PSScriptRoot\Peek.wxs -regroot $registryroot
#PowerRename
Generate-FileList -fileDepsJson "" -fileListName PowerRenameAssetsFiles -wxsFilePath $PSScriptRoot\PowerRename.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\PowerRename\"
Generate-FileComponents -fileListName "PowerRenameAssetsFiles" -wxsFilePath $PSScriptRoot\PowerRename.wxs -regroot $registryroot
#RegistryPreview
Generate-FileList -fileDepsJson "" -fileListName RegistryPreviewAssetsFiles -wxsFilePath $PSScriptRoot\RegistryPreview.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\RegistryPreview\"
Generate-FileComponents -fileListName "RegistryPreviewAssetsFiles" -wxsFilePath $PSScriptRoot\RegistryPreview.wxs -regroot $registryroot
#Run
Generate-FileList -fileDepsJson "" -fileListName launcherImagesComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\PowerLauncher"
Generate-FileComponents -fileListName "launcherImagesComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
## Plugins
###Calculator
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Calculator\Microsoft.PowerToys.Run.Plugin.Calculator.deps.json" -fileListName calcComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName calcImagesComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Calculator\Images"
Generate-FileComponents -fileListName "calcComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "calcImagesComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###Folder
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Folder\Microsoft.Plugin.Folder.deps.json" -fileListName FolderComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName FolderImagesComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Folder\Images"
Generate-FileComponents -fileListName "FolderComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "FolderImagesComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###Program
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Program\Microsoft.Plugin.Program.deps.json" -fileListName ProgramComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName ProgramImagesComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Program\Images"
Generate-FileComponents -fileListName "ProgramComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "ProgramImagesComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###Shell
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Shell\Microsoft.Plugin.Shell.deps.json" -fileListName ShellComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName ShellImagesComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Shell\Images"
Generate-FileComponents -fileListName "ShellComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "ShellImagesComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###Indexer
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Indexer\Microsoft.Plugin.Indexer.deps.json" -fileListName IndexerComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName IndexerImagesComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Indexer\Images"
Generate-FileComponents -fileListName "IndexerComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "IndexerImagesComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###UnitConverter
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\UnitConverter\Community.PowerToys.Run.Plugin.UnitConverter.deps.json" -fileListName UnitConvCompFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName UnitConvImagesCompFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\UnitConverter\Images"
Generate-FileComponents -fileListName "UnitConvCompFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "UnitConvImagesCompFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###WebSearch
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\WebSearch\Community.PowerToys.Run.Plugin.WebSearch.deps.json" -fileListName WebSrchCompFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName WebSrchImagesCompFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\WebSearch\Images"
Generate-FileComponents -fileListName "WebSrchCompFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "WebSrchImagesCompFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###History
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\History\Microsoft.PowerToys.Run.Plugin.History.deps.json" -fileListName HistoryPluginComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName HistoryPluginImagesComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\History\Images"
Generate-FileComponents -fileListName "HistoryPluginComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "HistoryPluginImagesComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###Uri
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Uri\Microsoft.Plugin.Uri.deps.json" -fileListName UriComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName UriImagesComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Uri\Images"
Generate-FileComponents -fileListName "UriComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "UriImagesComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###VSCodeWorkspaces
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\VSCodeWorkspaces\Community.PowerToys.Run.Plugin.VSCodeWorkspaces.deps.json" -fileListName VSCWrkCompFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName VSCWrkImagesCompFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\VSCodeWorkspaces\Images"
Generate-FileComponents -fileListName "VSCWrkCompFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "VSCWrkImagesCompFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###WindowWalker
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\WindowWalker\Microsoft.Plugin.WindowWalker.deps.json" -fileListName WindowWlkrCompFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName WindowWlkrImagesCompFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\WindowWalker\Images"
Generate-FileComponents -fileListName "WindowWlkrCompFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "WindowWlkrImagesCompFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###OneNote
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\OneNote\Microsoft.PowerToys.Run.Plugin.OneNote.deps.json" -fileListName OneNoteComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName OneNoteImagesComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\OneNote\Images"
Generate-FileComponents -fileListName "OneNoteComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "OneNoteImagesComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###Registry
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Registry\Microsoft.PowerToys.Run.Plugin.Registry.deps.json" -fileListName RegistryComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName RegistryImagesComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Registry\Images"
Generate-FileComponents -fileListName "RegistryComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "RegistryImagesComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###Service
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Service\Microsoft.PowerToys.Run.Plugin.Service.deps.json" -fileListName ServiceComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName ServiceImagesComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\Service\Images"
Generate-FileComponents -fileListName "ServiceComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "ServiceImagesComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###System
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\System\Microsoft.PowerToys.Run.Plugin.System.deps.json" -fileListName SystemComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName SystemImagesComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\System\Images"
Generate-FileComponents -fileListName "SystemComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "SystemImagesComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###TimeDate
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\TimeDate\Microsoft.PowerToys.Run.Plugin.TimeDate.deps.json" -fileListName TimeDateComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName TimeDateImagesComponentFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\TimeDate\Images"
Generate-FileComponents -fileListName "TimeDateComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "TimeDateImagesComponentFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###WindowsSettings
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\WindowsSettings\Microsoft.PowerToys.Run.Plugin.WindowsSettings.deps.json" -fileListName WinSetCmpFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName WinSetImagesCmpFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\WindowsSettings\Images"
Generate-FileComponents -fileListName "WinSetCmpFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "WinSetImagesCmpFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###WindowsTerminal
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\WindowsTerminal\Microsoft.PowerToys.Run.Plugin.WindowsTerminal.deps.json" -fileListName WinTermCmpFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName WinTermImagesCmpFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\WindowsTerminal\Images"
Generate-FileComponents -fileListName "WinTermCmpFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "WinTermImagesCmpFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###PowerToys
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\PowerToys\Microsoft.PowerToys.Run.Plugin.PowerToys.deps.json" -fileListName PowerToysCmpFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName PowerToysImagesCmpFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\PowerToys\Images"
Generate-FileComponents -fileListName "PowerToysCmpFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "PowerToysImagesCmpFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
###ValueGenerator
Generate-FileList -fileDepsJson "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\ValueGenerator\Community.PowerToys.Run.Plugin.ValueGenerator.deps.json" -fileListName ValueGeneratorCmpFiles -wxsFilePath $PSScriptRoot\Run.wxs -isLauncherPlugin 1
Generate-FileList -fileDepsJson "" -fileListName ValueGeneratorImagesCmpFiles -wxsFilePath $PSScriptRoot\Run.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\RunPlugins\ValueGenerator\Images"
Generate-FileComponents -fileListName "ValueGeneratorCmpFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
Generate-FileComponents -fileListName "ValueGeneratorImagesCmpFiles" -wxsFilePath $PSScriptRoot\Run.wxs -regroot $registryroot
## Plugins
#ShortcutGuide
Generate-FileList -fileDepsJson "" -fileListName ShortcutGuideSvgFiles -wxsFilePath $PSScriptRoot\ShortcutGuide.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\ShortcutGuide\"
Generate-FileComponents -fileListName "ShortcutGuideSvgFiles" -wxsFilePath $PSScriptRoot\ShortcutGuide.wxs -regroot $registryroot
#Settings
Generate-FileList -fileDepsJson "" -fileListName SettingsV2AssetsFiles -wxsFilePath $PSScriptRoot\Settings.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\Settings\"
Generate-FileList -fileDepsJson "" -fileListName SettingsV2AssetsModulesFiles -wxsFilePath $PSScriptRoot\Settings.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\Settings\Modules\"
Generate-FileList -fileDepsJson "" -fileListName SettingsV2OOBEAssetsModulesFiles -wxsFilePath $PSScriptRoot\Settings.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\Settings\Modules\OOBE\"
Generate-FileList -fileDepsJson "" -fileListName SettingsV2OOBEAssetsFluentIconsFiles -wxsFilePath $PSScriptRoot\Settings.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\Settings\Icons\"
Generate-FileComponents -fileListName "SettingsV2AssetsFiles" -wxsFilePath $PSScriptRoot\Settings.wxs -regroot $registryroot
Generate-FileComponents -fileListName "SettingsV2AssetsModulesFiles" -wxsFilePath $PSScriptRoot\Settings.wxs -regroot $registryroot
Generate-FileComponents -fileListName "SettingsV2OOBEAssetsModulesFiles" -wxsFilePath $PSScriptRoot\Settings.wxs -regroot $registryroot
Generate-FileComponents -fileListName "SettingsV2OOBEAssetsFluentIconsFiles" -wxsFilePath $PSScriptRoot\Settings.wxs -regroot $registryroot
#Workspaces
Generate-FileList -fileDepsJson "" -fileListName WorkspacesImagesComponentFiles -wxsFilePath $PSScriptRoot\Workspaces.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\Workspaces\"
Generate-FileComponents -fileListName "WorkspacesImagesComponentFiles" -wxsFilePath $PSScriptRoot\Workspaces.wxs -regroot $registryroot

View File

@@ -0,0 +1,70 @@
[CmdletBinding()]
Param(
[Parameter(Mandatory = $True, Position = 1)]
[string]$monacoWxsFile
)
echo here-----------------------------------------------------------------------
$fileWxs = Get-Content $monacoWxsFile;
$fileWxs = $fileWxs -replace " KeyPath=`"yes`" ", " "
$newFileContent = ""
$componentId = "error"
$directories = @()
$fileWxs | ForEach-Object {
$line = $_;
if ($line -match "<Wix xmlns=`".*`">") {
$line +=
@"
`r`n
<?include `$(sys.CURRENTDIR)\Common.wxi?>`r`n
"@
}
if ($line -match "<Component Id=`"(.*)`" Directory") {
$componentId = $matches[1]
}
if ($line -match "<Directory Id=`"(.*)`" Name=`".*`" />") {
$directories += $matches[1]
}
if ($line -match "</Component>") {
$line =
@"
<RegistryKey Root="`$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="$($componentId)" Value="" KeyPath="yes"/>
</RegistryKey>
</Component>
"@
}
$newFileContent += $line + "`r`n";
}
$removeFolderEntries =
@"
`r`n <Component Id="RemoveMonacoSRCFolders" Guid="$((New-Guid).ToString().ToUpper())" Directory="MonacoPreviewHandlerMonacoSRCFolder" >
<RegistryKey Root="`$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveMonacoSRCFolders" Value="" KeyPath="yes"/>
</RegistryKey>`r`n
"@
$directories | ForEach-Object {
$removeFolderEntries +=
@"
<RemoveFolder Id="Remove$($_)" Directory="$($_)" On="uninstall"/>
"@
}
$removeFolderEntries +=
@"
</Component>
"@
$newFileContent = $newFileContent -replace "\s+(</ComponentGroup>)", "$removeFolderEntries`r`n </ComponentGroup>"
Set-Content -Path $monacoWxsFile -Value $newFileContent

View File

@@ -0,0 +1,17 @@
setlocal enableDelayedExpansion
IF NOT DEFINED PTRoot (SET PTRoot=..\..)
SET PlatformArg=%1
IF NOT DEFINED PlatformArg (SET PlatformArg=x64)
SET VCToolsVersion=!VCToolsVersion!
SET ClearDevCommandPromptEnvVars=false
echo cmd--------------------------------------------------------------------
rem In case of Release we should not use Debug CRT in VCRT forwarders
msbuild !PTRoot!\src\modules\previewpane\MonacoPreviewHandler\MonacoPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
echo VCToolsVersion
@REM msbuild !PTRoot!\src\modules\previewpane\MarkdownPreviewHandler\MarkdownPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
@REM msbuild !PTRoot!\src\modules\previewpane\SvgPreviewHandler\SvgPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
@REM msbuild !PTRoot!\src\modules\previewpane\SvgThumbnailProvider\SvgThumbnailProvider.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml

View File

@@ -0,0 +1,12 @@
@echo off
setlocal ENABLEDELAYEDEXPANSION
@REM We loop here until taskkill cannot find a PowerToys process. We can't use /F flag, because it
@REM doesn't give application an opportunity to cleanup. Thus we send WM_CLOSE which is being caught
@REM by multiple windows running a msg loop in PowerToys.exe process, which we close one by one.
for /l %%x in (1, 1, 100) do (
taskkill /IM PowerToys.exe 1>NUL 2>NUL
if !ERRORLEVEL! NEQ 0 goto quit
)
:quit

9
installer/wixVNext.props Normal file
View File

@@ -0,0 +1,9 @@
<!-- <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WixInstallPath>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\FireGiant\HeatWave\Wix5</WixInstallPath>
<WixCATargetsPath>$(WixSdkPath)\..\wix.ca.targets</WixCATargetsPath>
</PropertyGroup>
</Project> -->

View File

@@ -45,55 +45,55 @@ param (
$repoRoot = Resolve-Path "$PSScriptRoot\..\.."
Set-Location $repoRoot
function RunMSBuild {
param (
[string]$Solution,
[string]$ExtraArgs
)
# function RunMSBuild {
# param (
# [string]$Solution,
# [string]$ExtraArgs
# )
$base = @(
$Solution
"/p:Platform=`"$Platform`""
"/p:Configuration=$Configuration"
'/verbosity:normal'
'/clp:Summary;PerformanceSummary;ErrorsOnly;WarningsOnly'
'/nologo'
)
# $base = @(
# $Solution
# "/p:Platform=`"$Platform`""
# "/p:Configuration=$Configuration"
# '/verbosity:normal'
# '/clp:Summary;PerformanceSummary;ErrorsOnly;WarningsOnly'
# '/nologo'
# )
$cmd = $base + ($ExtraArgs -split ' ')
Write-Host ("[MSBUILD] {0} {1}" -f $Solution, ($cmd -join ' '))
& msbuild.exe @cmd
# $cmd = $base + ($ExtraArgs -split ' ')
# Write-Host ("[MSBUILD] {0} {1}" -f $Solution, ($cmd -join ' '))
# & msbuild.exe @cmd
if ($LASTEXITCODE -ne 0) {
Write-Error ("Build failed: {0} {1}" -f $Solution, $ExtraArgs)
exit $LASTEXITCODE
}
# if ($LASTEXITCODE -ne 0) {
# Write-Error ("Build failed: {0} {1}" -f $Solution, $ExtraArgs)
# exit $LASTEXITCODE
# }
}
# }
function RestoreThenBuild {
param ([string]$Solution)
# function RestoreThenBuild {
# param ([string]$Solution)
# 1) restore
RunMSBuild $Solution '/t:restore /p:RestorePackagesConfig=true'
# 2) build -------------------------------------------------
RunMSBuild $Solution '/m'
}
# # 1) restore
# RunMSBuild $Solution '/t:restore /p:RestorePackagesConfig=true'
# # 2) build -------------------------------------------------
# RunMSBuild $Solution '/m'
# }
Write-Host ("Make sure wix is installed and available")
& "$PSScriptRoot\ensure-wix.ps1"
# Write-Host ("Make sure wix is installed and available")
# & "$PSScriptRoot\ensure-wix.ps1"
Write-Host ("[PIPELINE] Start | Platform={0} Configuration={1}" -f $Platform, $Configuration)
Write-Host ''
# Write-Host ("[PIPELINE] Start | Platform={0} Configuration={1}" -f $Platform, $Configuration)
# Write-Host ''
$cmdpalOutputPath = Join-Path $repoRoot "$Platform\$Configuration\WinUI3Apps\CmdPal"
# $cmdpalOutputPath = Join-Path $repoRoot "$Platform\$Configuration\WinUI3Apps\CmdPal"
if (Test-Path $cmdpalOutputPath) {
Write-Host "[CLEAN] Removing previous output: $cmdpalOutputPath"
Remove-Item $cmdpalOutputPath -Recurse -Force -ErrorAction Ignore
}
# if (Test-Path $cmdpalOutputPath) {
# Write-Host "[CLEAN] Removing previous output: $cmdpalOutputPath"
# Remove-Item $cmdpalOutputPath -Recurse -Force -ErrorAction Ignore
# }
RestoreThenBuild '.\PowerToys.sln'
# RestoreThenBuild '.\PowerToys.sln'
$msixSearchRoot = Join-Path $repoRoot "$Platform\$Configuration"
$msixFiles = Get-ChildItem -Path $msixSearchRoot -Recurse -Filter *.msix |
@@ -107,16 +107,8 @@ else {
Write-Warning "[SIGN] No .msix files found in $msixSearchRoot"
}
RestoreThenBuild '.\tools\BugReportTool\BugReportTool.sln'
RestoreThenBuild '.\tools\StylesReportTool\StylesReportTool.sln'
# RestoreThenBuild '.\tools\BugReportTool\BugReportTool.sln'
# RestoreThenBuild '.\tools\StylesReportTool\StylesReportTool.sln'
Write-Host '[CLEAN] installer (keep *.exe)'
git clean -xfd -e '*.exe' -- .\installer\ | Out-Null
RunMSBuild '.\installer\PowerToysSetup.sln' '/t:restore /p:RestorePackagesConfig=true'
RunMSBuild '.\installer\PowerToysSetup.sln' '/m /t:PowerToysInstaller /p:PerUser=true'
RunMSBuild '.\installer\PowerToysSetup.sln' '/m /t:PowerToysBootstrapper /p:PerUser=true'
Write-Host '[PIPELINE] Completed'
# Write-Host '[CLEAN] installer (keep *.exe)'
# git clean -xfd -e '*.exe' -- .\installer\ | Out-Null

View File

@@ -152,4 +152,16 @@ function Export-CertificateFiles {
if (-not $CerPath -and -not $PfxPath) {
Write-Warning "No output path specified. Nothing was exported."
}
}
}
$cert = EnsureCertificate
if ($cert) {
$cerPath = "$env:TEMP\CodeSigningCert.cer"
Export-CertificateFiles -Certificate $cert -CerPath $cerPath
Write-Host "Certificate exported to $cerPath"
} else {
Write-Warning "Failed to ensure certificate. Export skipped."
}

View File

@@ -1,6 +1,6 @@
param (
[string]$certSubject = "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US",
[string[]]$TargetPaths = "C:\PowerToys\ARM64\Release\WinUI3Apps\CmdPal\AppPackages\Microsoft.CmdPal.UI_0.0.1.0_Test\Microsoft.CmdPal.UI_0.0.1.0_arm64.msix"
[string[]]$TargetPaths = "C:\Program Files\PowerToys\WinUI3Apps\CmdPal\Microsoft.CmdPal.UI_0.0.1.0_x64.msix"
)
. "$PSScriptRoot\cert-management.ps1"
@@ -25,5 +25,5 @@ foreach ($filePath in $TargetPaths) {
}
Write-Host "Signing: $filePath"
& signtool sign /sha1 $($cert.Thumbprint) /fd SHA256 /t http://timestamp.digicert.com "$filePath"
& "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\signtool.exe" sign /sha1 $($cert.Thumbprint) /fd SHA256 /t http://timestamp.digicert.com "$filePath"
}