[wix-users] Windows Installer database schema: Compatible to standards?
Reuss, Matthias
matthias.mr.reuss at sivantos.com
Thu May 17 04:41:28 PDT 2018
Hi,
we are migrating an MSI installer that was not authored with WiX to WiX.
We observed the following:
When building the MSI from WiX, the database columns File.Sequence and Media.LastSequence are defined as "i4", i.e. 4-byte (long) integers.
However, in our legacy MSI, these columns are defined as "i2", i.e. 2-byte (short) integers.
As a consequence, it is not possible to create a transform (or a patch) from these two MSI databases.
"Official" MSI documentation (e.g. https://msdn.microsoft.com/en-us/library/windows/desktop/aa368596(v=vs.85).aspx) says that these columns shall be of "Integer" data type, which means here two-byte integer as opposed to 4-byte "DoubleInteger".
In addition, there were 3 more mismatches between the two database schemas:
Legacy WiX
Shortcut.Target s255 s72
Shortcut.Arguments S72 S255
CustomAction.Source S64 S72
For the sizes of these 3 string columns, I have not found an official statement.
I understand that defining the sequence numbers as i4 allows to author packages with a larger number of files.
But is there a switch (e.g. in light) to make WiX build an MSI database which is fully compatible to the standard schema?
Best regards,
Matthias Reuss
More information about the wix-users
mailing list