[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


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