MSI Tables to WiX Schema
In the WiX schema, its not always entirely obvious how the tables from the Windows Installer schema map to the WiX schema. Below are some helpful hints on how to figure out the relationships between the two schemas.
DuplicateFile Table
This is authored using a CopyFile node nested under a File node. You only need to set the Id, DestinationFolder, and DestinationName attributes.
LaunchCondition Table
This is authored using a Condition node authored under Fragment or Product. You only need to set the Message attribute.
LockPermissions Table
This is authored using Permission.
MoveFile Table
This is authored using a CopyFile node nested under a Component node. You will need to set all attributes except Delete. Set Delete to 'yes' in order to use the msidbMoveFileOptionsMove option.
PublishComponent Table
The PublishComponent functionality is available in WiX by using a Category. Here is a small sample of what a PublishComponent record would look like in MSI, then in WiX notation.
- MSI
-
ComponentId Qualifier Component_ AppData Feature_ {11111111-2222-3333-4444-5555555555555} 1033 MyComponent Random Data MyFeature
- WiX
-
<Component Id='MyComponent' Guid='87654321-4321-4321-4321-110987654321'> <Category Id='11111111-2222-3333-4444-5555555555555' AppData='Random Data' Qualifier='1033'/> </Component> . . . <Feature Id='MyFeature' Level='1'> <ComponentRef Id='MyComponent'/> </Feature>
RemoveIniFile
This is authored using IniFile. Just set the Action attribute to 'removeLine' or 'removeTag' as appropriate.
RemoveRegistry Table
This is authored using Registry. Simply set the Action attribute to 'remove' or 'removeKey' (as appropriate) in order to get an entry in the RemoveRegistry table.