Release notes
WiX v4.0.2
WiX v4.0.2 was released Wednesday, 13-Sep-2023
WiX v4.0.2 is a maintenance release of WiX v4 that fixes a number of bugs that escaped detection in WiX v4.0.0 and v4.0.1:
NetFxDotNetCompatibilityCheck
custom action badly fragmented, from @barnsonSubstitution does not create ModuleSubstitution table when building Merge Module, from @rsdk-vag
RegisterFonts action is not added to the InstallExecuteSequence when fonts are being installed to the FontsFolder., from @kerrywicks
Migrated WiX v3 to v4, now getting error doing action Wix4ConfigureSmbUninstall_X64 when installing, from @barnson
IWindowsInstallerDecompileContext.TreatProductAsModule is borked, from @barnson
wix msi decompile -x
removes modularization GUIDs from object fields, from @barnsonMerge modules don't extract during decompilation, from @barnson
All of the goodness in WiX v4.0.0 and v4.0.1 remains.
Platforms
- Arm64 is supported in the core toolset, extensions, and Burn.
- WiX extensions include platform-specific custom actions for the platform of the package being built. For example, an Arm64 package contains only Arm64 custom actions and doesn't rely on x86 emulation.
Build tools
- WiX v4 doesn't have to be installed on every dev machine and build image like WiX v3. Instead, WiX v4 follows the modern .NET model of using NuGet to deliver tools.
- WiX v4 MSBuild projects are SDK-style projects; MSBuild and NuGet work together to bring down the WiX v4 MSBuild SDK NuGet package.
- Both .NET Framework MSBuild and
dotnet build
are supported. - To build packages from the command line, WiX v4 is available as a .NET tool, which is also a NuGet package.
- WiX extensions are delivered as NuGet packages, which are usable from both MSBuild projects via
PackageReference
and the WiX .NET tool.
- For command-line afficionados, most executables have been merged into a single
wix.exe
tool with commands. For example, in WiX v3, you might build by calling Candle.exe one or more times to compile your authoring and then calling Light.exe to link and bind the compiled authoring into an .msi package. In WiX v4 usingwix.exe
, that's one command:wix build -o product.msi product.wxs
. - Building patches is much easier (one command!) and can use MSI packages as the source of target and updated files.
- The WiX extensibility model and pipeline integration has been dramatically enhanced.
- The WiX language has been further simplified. For example:
- The
Package
element combines what was two elements in WiX v3. - The
StandardDirectory
element simplifies the use of standard Windows Installer directories. - The
Subdirectory
attribute on, for example, theComponent
element, lets you create subdirectories without nestedDirectory
elements. - WiX supplies a default
MediaTemplate
element if you don't specify one in your authoring.
- The
- WiX warns when mixing authoring meant for MSI packages in bundles and vice versa.
Burn, bundles, and bootstrapper applications
- The Burn engine is platform-specific, so you can build an x64 bundle that contains only x64 code and doesn't rely on WoW64.
- .NET 6 and later are supported platforms for writing managed-code bootstrapper applications. .NET Framework is also supported.
- ThmUtil, the native-code UI library used by the WixStdBA bootstrapper application, supports new controls and authored conditions and actions that let themes add functionality without having to write custom C++ code. For details, see Thmutil schema.
- ThmUtil (and therefore WixStdBA) supports high DPI display settings.
- The new
WixInternalUIBootstrapperApplication
BA supports showing only the internal or embedded UI of an MSI package. - Burn support other bundles in the chain via
BundlePackage
to automatically handle detection and uninstall command lines. Likewise, theArpEntry
element provides the same functionality for arbitrary executable packages in the chain. - Burn supports SemVer-style versions.
- WixStdBA supports bundle update feeds as specified in an
Update
element. - Burn now upgrades bundles with the same version numbers.
- When a user requires elevation to restart (common on Windows Server machines), Burn handles restart through the elevated engine.
- Custom bootstrapper applications can change the
REINSTALLMODE
used when applying MSI packages. - The Burn policy registry value
EngineWorkingDirectory
inHKLM\Software\Policies\Wix\Burn
is a string specifying a working folder root directory for elevated bundles when the default ofC:\Windows\Temp
is blocked by security policy. - Burn no longer appears in the Apps & Features (ARP) list if a bundle has a pre-req that causes a reboot and the user cancels after the reboot.
- The
/unsafeuninstall
command-line switch lets users attempt to "force" a bundle to uninstall, even if dependency checking would otherwise leave it installed.
Deprecations and deletions
- Features that were deprecated in WiX v3, including command-line switches deprecated in WiX v3.14, have been removed from WiX v4.
- WixGamingExtension and WixLuxExtension have been removed in WiX v4.
- WixDifxAppExtension is deprecated in Windows 10 and therefore has been deprecated in WiX v4 and will be removed in WiX v5.
Update MSBuild projects
To update your .wixproj MSBuild projects from previous WiX v4 releases, update the Project
element's Sdk
attribute:
<Project Sdk="WixToolset.Sdk/4.0.2">
For PackageReference
s to WiX v4 extensions, update their Version
attribute. For example:
<PackageReference Include="WixToolset.Util.wixext" Version="4.*" />
<PackageReference Include="WixToolset.Netfx.wixext" Version="4.*" />
To clean up the NuGet artifacts from previous releases of WiX v4, we recommend you delete the bin
and obj
directories in your projects. If you're using .NET Framework MSBuild, do an explicit MSBuild -Restore
to get the latest version restored. (Using dotnet build
does that implicitly for you.)
Update the WiX .NET tool
To update your .NET tool installation of WiX v4:
dotnet tool update --global wix
To install WiX for the first time as a .NET tool:
dotnet tool install --global wix
To verify Wix.exe was successfully installed or updated:
wix --version
Previous WiX v4 releases
WiX v4.0.1 was released Monday, 5-June-2023
WiX v4.0.1 was a maintenance release of WiX v4 that fixes a number of annoyances and more serious bugs that escaped detection in WiX v4.0.0.
WiX v4.0.0 was released Wednesday, 5-April-2023
Contributors
@robmen, @rseanhall, and @barnson took their maintainer duties seriously during the development of WiX v4. They were joined by many others, who have our thanks!
- @cpuwzd
- @nirbar
- @japarson
- @drolevar
- @MarkStega
- @hymccord
- @jchoover
- @AlexKubiesa
- @wjk
- @maniglia
- @mcraiha
- @StefanStojanovic
- @ericstj
- @pascalpfeil
- @danielchalmers
- @HarmvandenBrand
- @sgtatham
- @paulomorgado
- @adnanshaheen
- @FroggieFrog
- @Herohtar
- @BMurri
- @heaths
- @chrpai
- @VolkerGa
- @t-johnson
Release Candidate 4 released Friday, 17-March-2023
WiX v4 Release Candidate 4 contains fixes for the -- significantly smaller number of bugs compared to RC3 -- that were reported during Release Candidate 3. There is one minor new feature:
- In WixToolset.Netfx.wixext, package groups for .NET Framework v4.8.1 are now available. See the issue and @barnson's pull request.
Release Candidate 3 released Friday, 24-February-2023
WiX v4 Release Candidate 3 contains fixes for bugs that were reported during Release Candidate 2. There are two minor new features:
- WiX MSBuild projects support multi-targeting other projects with a single
ProjectReference
. You can specify multiple platforms, configurations, .NET frameworks, and runtime identifiers. See @robmen's WIP and pull request. - A new
sys.BUILDARCHSHORT
built-in preprocessor variable helps handle WiX v4's new architecture-specific custom actions. See issue 7227 and @barnson's PR.
Release Candidate 2 released Friday, 20-January-2023
WiX v4 Release Candidate 2 contains fixes for bugs that were reported during Release Candidate 1. There are two new features:
- Add
perUserOrMachine
to thePackage/@Scope
options for dual-scope, single-package authoring. See issue #7137, @robmen's code PR, and documentation PR. - Add
DotNetCoreSdkSearch
Burn search to locate .NET (Core) SDKs, like theDotNetCoreSearch
search for .NET runtimes. See issue #7058, @powercode's code PR, and @rseanhall's documentation PR.
Release Candidate 1 released Friday, 16-December-2022
WiX v4 Release Candidate 1 contains fixes for bugs that were reported during Preview 1. There are no new features.
Preview 1 released Friday, 11-November-2022
WiX v4 is a major release of the WiX Toolset, years in the making. More than 500 issues were closed in WiX v4!
If you're familiar with WiX v3, WiX v4 for WiX v3 users has details about how WiX v4 works.