Repository navigation
Migrate the Windows MSI build from WiX v3 to WiX v7 #34272
Description
Related command
N/A (Windows MSI packaging in build_scripts/windows)
Is your feature request related to a problem? Please describe.
The Windows MSIs are built with WiX 3.10: build.cmd downloads wix310-binaries-mirror.zip, and the 2.91.0 MSI reports Windows Installer XML Toolset (3.10.4.4718).
- WiX v3 has been out of community support since February 6, 2025: no more releases, including security fixes.
- It needs .NET Framework 3.5, a blob-hosted mirror of the binaries and a hard-coded MSBuild path, and its tools are x86-only .NET Framework executables.
- It's a poor fit for Windows arm64 (Arm64 Windows support #29317). arm64 MSIs need WiX 3.14+, which is still v3, and heat.exe fails with a
BadImageFormatExceptionwhen run in-process under arm64 MSBuild, so arm64 build hosts need workarounds.
Describe the solution you'd like
Migrate to WiX v7, the current major version:
- Make
azure-cli.wixprojan SDK-style project (WixToolset.Sdk), restored from NuGet and built withdotnet build. That removes the WiX download, the .NET Framework 3.5 dependency and the MSBuild path. - Convert
Product.wxsto the v4+ schema, keeping UpgradeCodes, component GUIDs, the install layout and the upgrade logic unchanged so existing installs upgrade as before. - Replace heat.exe with WiX's built-in
<Files>harvesting.
I have this working for x86 and x64, including an upgrade from an existing 2.90.0 install, a fresh install with az self-test, and uninstall. I'm happy to open a PR.
One decision for the team: WiX v7 requires accepting the Open Source Maintenance Fee (OSMF) EULA, and organizations with more than $10k annual revenue are expected to sponsor the project. The build fails with WIX7015 until the EULA is accepted, e.g. via AcceptEula=wix7.
Describe alternatives you've considered
- WiX 3.14.1: enables arm64 MSIs, but stays on unsupported v3 with the same tooling limitations.
- WiX v5: no OSMF, but also out of community support.
- WiX v6: same OSMF terms as v7 and one major version behind. The authoring is identical, so this would mostly change the SDK version.
Additional context
- Related: Arm64 Windows support #29317 (native Windows arm64). Draft {Packaging} Prepare native Windows ARM64 packages #34195 bumps to WiX 3.14.1 for arm64; this migration would replace that part.
- Working branch: {Packaging} Migrate Windows MSI build to WiX v7 dennisameling/azure-cli#2
Activity
yonzhan commentedon Oct 25, 2026
Thank you for opening this issue, we will look into it.
dennisameling commentedon Oct 25, 2026
Here's a PR to migrate to WiX v7: #34273