mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-15 11:17:53 +01:00
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request Background: The current PowerToys installer is built using Wix3, which has now been deprecated. To improve security, service quality, and community support, we’re upgrading the installer to Wix5. Implementation: Created Wix5-based projects(PowerToysSetupVext and PowerToysSetupCustomActionsVNext) within the installer while retaining the existing Wix3 project. Both versions are built to generate separate installation packages. The Wix3-related code will be removed after successful release testing confirms no issues. Special case: Wix5 has removed the property for 'ShowFilesInUse'. Now, whenever a file is in use during installation, a FilesInUse pop-upwill automatically appear asking for the next step. To ensure this doesn't interfere with scenarios that require silent installation (e.g. Winget method), we’ve handled it using the bafunction approach. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed --------- Co-authored-by: Jerry Xu <n.xu@outlook.com> Co-authored-by: Kai Tao <69313318+vanzue@users.noreply.github.com> Co-authored-by: leileizhang <leilzh@microsoft.com> Co-authored-by: Kai Tao (from Dev Box) <kaitao@microsoft.com> Co-authored-by: vanzue <vanzue@outlook.com>
62 lines
3.1 KiB
XML
62 lines
3.1 KiB
XML
<Project Sdk="WixToolset.Sdk/5.0.2">
|
|
<PropertyGroup>
|
|
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<DefineConstants>Version=$(Version);InstallerSuffix=$(InstallerSuffix)</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>
|
|
<InstallerSuffix Condition="'$(InstallerSuffix)'==''">wix5</InstallerSuffix>
|
|
<OutputName>PowerToysSetup-$(Version)-$(InstallerSuffix)-$(Platform)</OutputName>
|
|
<OutputType>Bundle</OutputType>
|
|
<SuppressAclReset>True</SuppressAclReset>
|
|
<OutputName Condition=" '$(PerUser)' != 'true' ">PowerToysSetup-$(Version)-$(InstallerSuffix)-$(Platform)</OutputName>
|
|
<OutputName Condition=" '$(PerUser)' == 'true' ">PowerToysUserSetup-$(Version)-$(InstallerSuffix)-$(Platform)</OutputName>
|
|
<OutputPath Condition=" '$(PerUser)' != 'true' ">$(Platform)\$(Configuration)\MachineSetup</OutputPath>
|
|
<OutputPath Condition=" '$(PerUser)' == 'true' ">$(Platform)\$(Configuration)\UserSetup</OutputPath>
|
|
<IntermediateOutputPath Condition=" '$(PerUser)' != 'true' ">$(BaseIntermediateOutputPath)$(Platform)\$(Configuration)\MachineSetup</IntermediateOutputPath>
|
|
<IntermediateOutputPath Condition=" '$(PerUser)' == 'true' ">$(BaseIntermediateOutputPath)$(Platform)\$(Configuration)\UserSetup</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>
|
|
<ItemGroup>
|
|
<ProjectReference Include="SilentFilesInUseBA\SilentFilesInUseBAFunction.vcxproj">
|
|
<Project>{F8B9F842-F5C3-4A2D-8C85-7F8B9E2B4F1D}</Project>
|
|
<Name>SilentFilesInUseBAFunction</Name>
|
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
|
</ProjectReference>
|
|
</ItemGroup>
|
|
<!-- Prevents NU1503 -->
|
|
<Target Name="_IsProjectRestoreSupported" Returns="@(_ValidProjectsForRestore)">
|
|
<ItemGroup>
|
|
<_ValidProjectsForRestore Include="$(MSBuildProjectFullPath)" />
|
|
</ItemGroup>
|
|
</Target>
|
|
<Target Name="Restore" />
|
|
</Project> |