Migrate v3 Source Code to v4.
User stories
As a setup developer I can evaluate the changes made in the WiX v4.0 schema such that I plan my migration.
As a setup developer I have a tool to migrate my WiX v3.x source code to v4.0 such that I move to WiX v4.0 easily.
Proposal
WiX v4.0 contains several breaking changes to the WiX schema. These breaking changes improve the WiX toolset language. The changes can also be the largest impediment to upgrading from WiX v3.x to WiX v4.0.
This document attempts to track all the breaking changes and how to address them so developers using WIX v3.x can plan their migration to WiX v4.0. It is expected that WixCop.exe will automatically update as many of these changes as possible. The Considerations section will list those that cannot be migrated programmatically.
Namespace changes. The main schema and all extension schemas were changed to allow unfettered change to the schema.
Fix: Rename
http://schemas.microsoft.com/wix/2006/wi
tohttp://wixtoolset.org/schemas/v4/wxs
Fix: Rename
http://schemas.microsoft.com/wix/BalExtension
tohttp://wixtoolset.org/schemas/v4/wxs/bal
Fix: Rename
http://schemas.microsoft.com/wix/ComPlusExtension
tohttp://wixtoolset.org/schemas/v4/wxs/complus
Fix: Rename
http://schemas.microsoft.com/wix/DependencyExtension
tohttp://wixtoolset.org/schemas/v4/wxs/dependency
Fix: Rename
http://schemas.microsoft.com/wix/DifxAppExtension
tohttp://wixtoolset.org/schemas/v4/wxs/difxapp
Fix: Rename
http://schemas.microsoft.com/wix/FirewallExtension
tohttp://wixtoolset.org/schemas/v4/wxs/firewall
Fix: Rename
http://schemas.microsoft.com/wix/GamingExtension
tohttp://wixtoolset.org/schemas/v4/wxs/gaming
Fix: Rename
http://schemas.microsoft.com/wix/IIsExtension
tohttp://wixtoolset.org/schemas/v4/wxs/iis
Fix: Rename
http://schemas.microsoft.com/wix/MsmqExtension
tohttp://wixtoolset.org/schemas/v4/wxs/msmq
Fix: Rename
http://schemas.microsoft.com/wix/NetFxExtension
tohttp://wixtoolset.org/schemas/v4/wxs/netfx
Fix: Rename
http://schemas.microsoft.com/wix/PSExtension
tohttp://wixtoolset.org/schemas/v4/wxs/powershell
Fix: Rename
http://schemas.microsoft.com/wix/SqlExtension
tohttp://wixtoolset.org/schemas/v4/wxs/sql
Fix: Rename
http://schemas.microsoft.com/wix/TagExtension
tohttp://wixtoolset.org/schemas/v4/wxs/tag
Fix: Rename
http://schemas.microsoft.com/wix/UtilExtension
tohttp://wixtoolset.org/schemas/v4/wxs/util
Fix: Rename
http://schemas.microsoft.com/wix/VSExtension
tohttp://wixtoolset.org/schemas/v4/wxs/vs
Fix: Rename
http://wixtoolset.org/schemas/thmutil/2010
tohttp://wixtoolset.org/schemas/v4/thmutil
Fix: Rename
http://schemas.microsoft.com/wix/2009/Lux
tohttp://wixtoolset.org/schemas/v4/lux
File identifier generation. In WiX v3.x, file identifiers defaulted to the filename of a file. In WiX v4.0 the file identifier is generated from a combination of the file name plus its target directory.
Fix: Explicitly set absent
Id
attributes onFile
element to theName
attribute or filename from theSource
attribute.Bundle package and payload signature verification. Late in WiX v3.9 the default for Bundle package and payload signature validation was changed to "off". That made the default for the optional
SuppressSignatureValidation
attributeyes
and thus counter to the desired pattern where an absent boolean attribute isno
.Fix: Rename
SuppressSignatureValidation
attribute onExePackage
,MsiPackage
,MspPackage
,MsuPackage
andPayload
elements toEnableSignatureValidation
.
Considerations
The following are a list of changes that cannot be automatically updated.
- None at this time.