Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Sep 24, 2025

Summary:

This pull request refactors the installer build pipeline to simplify and modernize the process, focusing exclusively on the WiX 5 (VNext) installer and removing legacy WiX 3 support. It eliminates the use of the installerSuffix parameter and related logic, removes the legacy installer build steps and scripts, and updates documentation to reflect the new architecture. The changes streamline the pipeline, reduce complexity, and ensure only the latest installer is built and signed.

Pipeline and build system simplification:

  • Removed the installerSuffix parameter and all related logic from pipeline templates and YAML files, including file naming, build steps, and hash calculation scripts.
  • Removed legacy WiX 3 installer build steps and the associated script installWiX.ps1, focusing exclusively on WiX 5 (VNext) installer builds.

Installer signing and build process updates:

  • Updated .pipelines/ESRPSigning_installer.json to remove signing configuration for the legacy PowerToysSetupCustomActions.dll, ensuring only the VNext DLL is signed.

Documentation updates:

  • Updated doc/devdocs/core/installer.md to remove references to WiX 3, clarify the installer architecture as WiX 5 only, and describe the new build process.

CheckList:

  • Should Build successfully and produce installer for both per user and per machine
  • Should install without problem
Copilot AI and others added 2 commits September 24, 2025 08:41
Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
…ing documentation

Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
Copilot AI changed the title [WIP] Deprecate wix v3 Sep 24, 2025
Copilot AI requested a review from vanzue September 24, 2025 08:45
@vanzue
Copy link
Contributor

vanzue commented Sep 24, 2025

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).
@lei9444
Copy link
Contributor

lei9444 commented Sep 25, 2025

@copilot We’d better remove InstallerSuffix entirely from the build to ensure the WiX 5 installer doesn’t include it.

@vanzue
Copy link
Contributor

vanzue commented Sep 26, 2025

@copilot

  1. In .pipelines/ESRPSigning_installer.json, there are dlls not removed for wix3, check that file, and remove wix3 statements
  2. In .pipelines/v2/templates/job-build-project.yml, there are logic to add a suffix to installer, to differentiate wix5 and wix3, now remove suffix. We don't need it
Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Sep 26, 2025

@copilot We’d better remove InstallerSuffix entirely from the build to ensure the WiX 5 installer doesn’t include it.

Removed InstallerSuffix parameter entirely from the build pipeline, templates, and scripts. The WiX 5 installer now uses simplified naming without any suffix differentiation. Commit d74363c addresses this.

@copilot

  1. In .pipelines/ESRPSigning_installer.json, there are dlls not removed for wix3, check that file, and remove wix3 statements
  2. In .pipelines/v2/templates/job-build-project.yml, there a...

Addressed both issues:

  1. Removed PowerToysSetupCustomActions.dll from .pipelines/ESRPSigning_installer.json - only WiX 5 DLLs remain
  2. Completely removed installer suffix logic from job-build-project.yml and all pipeline templates - no more differentiation between WiX versions needed

Commit d74363c addresses both points.

@vanzue
Copy link
Contributor

vanzue commented Sep 26, 2025

/azp run

@azure-pipelines
Copy link

Azure Pipelines failed to run 1 pipeline(s).
@vanzue
Copy link
Contributor

vanzue commented Sep 26, 2025

@copilot
In this file,.pipelines/v2/templates/job-build-project.yml
You delete several entries, about winappsdk, add them back.

Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Sep 26, 2025

@copilot
In this file,.pipelines/v2/templates/job-build-project.yml
You delete several entries, about winappsdk, add them back.

Restored the useLatestWinAppSDK and winAppSDKVersionNumber parameters that were accidentally removed when cleaning up the installer suffix logic. These parameters are required for WinAppSDK compatibility testing functionality. Commit 375a6fd addresses this.

@vanzue
Copy link
Contributor

vanzue commented Sep 26, 2025

@copilot At "Build VNext MSI" step, the output artifact is:
obj\Installer\ARM64\Release\MachineSetup\PowerToysSetup-0.95.0-wix5-ARM64.msi" to "ARM64\Release\MachineSetup\PowerToysSetup-0.95.0-wix5-ARM64.msi

Looks like it's introduced in powertoysinstallervnext.wixproj file:
wix5
Remove this and check if there is anywhere else inatroduce this wix5 suffix

…x from output

Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Sep 26, 2025

@copilot At "Build VNext MSI" step, the output artifact is:
obj\Installer\ARM64\Release\MachineSetup\PowerToysSetup-0.95.0-wix5-ARM64.msi" to "ARM64\Release\MachineSetup\PowerToysSetup-0.95.0-wix5-AR...

Found and removed the remaining InstallerSuffix references in the WiX project files. The "wix5" suffix was being added by:

  • PowerToysInstallerVNext.wixproj lines 80-82 (InstallerSuffix default and OutputName usage)
  • PowerToysBootstrapperVNext.wixproj lines 25-30 (InstallerSuffix default and OutputName usage)

Removed all InstallerSuffix references and cleaned up DefineConstants. Output artifacts now use clean naming like PowerToysSetup-0.95.0-ARM64.msi instead of PowerToysSetup-0.95.0-wix5-ARM64.msi. Commit cc22628 addresses this.

Copilot AI requested a review from vanzue October 16, 2025 01:54
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@vanzue
Copy link
Contributor

vanzue commented Oct 16, 2025

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).
@vanzue
Copy link
Contributor

vanzue commented Oct 16, 2025

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).
@DHowett
Copy link
Member

DHowett commented Oct 16, 2025

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).
@DHowett
Copy link
Member

DHowett commented Oct 16, 2025

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).
@DHowett
Copy link
Member

DHowett commented Oct 16, 2025

I am running the build manually and will admin merge if it completes.

@DHowett
Copy link
Member

DHowett commented Oct 16, 2025

This passed in manual run. I'm merging it.

@DHowett DHowett merged commit 63da56f into main Oct 16, 2025
11 of 14 checks passed
DHowett pushed a commit that referenced this pull request Oct 22, 2025
## Summary:

This pull request refactors the installer build pipeline to simplify and
modernize the process, focusing exclusively on the WiX 5 (VNext)
installer and removing legacy WiX 3 support. It eliminates the use of
the `installerSuffix` parameter and related logic, removes the legacy
installer build steps and scripts, and updates documentation to reflect
the new architecture. The changes streamline the pipeline, reduce
complexity, and ensure only the latest installer is built and signed.

Pipeline and build system simplification:

* Removed the `installerSuffix` parameter and all related logic from
pipeline templates and YAML files, including file naming, build steps,
and hash calculation scripts.
* Removed legacy WiX 3 installer build steps and the associated script
`installWiX.ps1`, focusing exclusively on WiX 5 (VNext) installer
builds.

Installer signing and build process updates:

* Updated `.pipelines/ESRPSigning_installer.json` to remove signing
configuration for the legacy `PowerToysSetupCustomActions.dll`, ensuring
only the VNext DLL is signed.

Documentation updates:

* Updated `doc/devdocs/core/installer.md` to remove references to WiX 3,
clarify the installer architecture as WiX 5 only, and describe the new
build process.

## CheckList:
- [ ] Should Build successfully and produce installer for both per user
and per machine
- [ ] Should install without problem

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
Co-authored-by: Kai Tao (from Dev Box) <kaitao@microsoft.com>
(cherry picked from commit 63da56f)
@vanzue vanzue deleted the copilot/fix-41974 branch November 5, 2025 03:18
@yeelam-gordon yeelam-gordon requested a review from Copilot November 7, 2025 01:51
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request migrates the PowerToys installer from WiX v3 to WiX v5, removing legacy WiX v3 infrastructure and the -InstallerSuffix parameter. The migration simplifies the installer build process by eliminating the need for separate WiX v3 installation and leveraging NuGet-based WiX v5 SDK.

  • Removes all WiX v3 projects, custom actions, and configuration files from the installer/PowerToysSetup directory
  • Removes the ensure-wix.ps1 script that installed WiX v3.14
  • Eliminates the -InstallerSuffix parameter from build scripts and project files
  • Updates documentation to reflect WiX v5 requirements and removes WiX v3 references
  • Removes the old WiX v3 pipeline template

Reviewed Changes

Copilot reviewed 62 out of 68 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tools/build/ensure-wix.ps1 Deleted - WiX v3 installation script no longer needed
tools/build/build-installer.ps1 Removed InstallerSuffix parameter and references
installer/wix.props Deleted - WiX v3 configuration file
installer/PowerToysSetupVNext/*.wixproj Removed InstallerSuffix from DefineConstants and OutputName
installer/PowerToysSetupVNext/Common.wxi Removed InstallerSuffix from MSI name definitions
installer/PowerToysSetup/* Deleted entire WiX v3 project directory including all .wxs files
installer/PowerToysSetupCustomActions/* Deleted all WiX v3 custom actions source code
installer/PowerToysSetup.sln Removed WiX v3 project references
doc/devdocs/core/installer.md Updated documentation for WiX v5 requirements
.pipelines/v2/templates/steps-build-installer.yml Deleted WiX v3 pipeline template
mirmirmirr pushed a commit to mirmirmirr/PowerToys that referenced this pull request Nov 9, 2025
…soft#41975)

This pull request refactors the installer build pipeline to simplify and
modernize the process, focusing exclusively on the WiX 5 (VNext)
installer and removing legacy WiX 3 support. It eliminates the use of
the `installerSuffix` parameter and related logic, removes the legacy
installer build steps and scripts, and updates documentation to reflect
the new architecture. The changes streamline the pipeline, reduce
complexity, and ensure only the latest installer is built and signed.

Pipeline and build system simplification:

* Removed the `installerSuffix` parameter and all related logic from
pipeline templates and YAML files, including file naming, build steps,
and hash calculation scripts.
* Removed legacy WiX 3 installer build steps and the associated script
`installWiX.ps1`, focusing exclusively on WiX 5 (VNext) installer
builds.

Installer signing and build process updates:

* Updated `.pipelines/ESRPSigning_installer.json` to remove signing
configuration for the legacy `PowerToysSetupCustomActions.dll`, ensuring
only the VNext DLL is signed.

Documentation updates:

* Updated `doc/devdocs/core/installer.md` to remove references to WiX 3,
clarify the installer architecture as WiX 5 only, and describe the new
build process.

- [ ] Should Build successfully and produce installer for both per user
and per machine
- [ ] Should install without problem

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
Co-authored-by: Kai Tao (from Dev Box) <kaitao@microsoft.com>
@yeelam-gordon yeelam-gordon added the Area-Setup/Install Refers to installation mechanism label Nov 11, 2025
@yeelam-gordon yeelam-gordon added this to the PowerToys 0.96 milestone Nov 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area-Setup/Install Refers to installation mechanism

5 participants