[wix-users] Modify Schema

Neil Hayes Neil.Hayes at syspro.com
Mon Aug 22 21:58:59 PDT 2016

Ronny, I did see that but I didn't know what schema.msi WiX was using. I searched under the WiX directory structure only to find Darice.cab which I thought was normally used for ICE tests.

Rob  - So I don't actually need to do anything

The reason I raised the concern - previously using InstallShield, I actually used the incorrect template only to find I couldn't patch the install as I was shipping just under 32767 files (hence it built in the first place).

On investigation, InstallShield has a larger template (IsMsiPklarge). So I looked at what they had defined.  InstallShield had increased the size for the File table and Media table, but looking at the Patch table the Sequence still remains at 32767, which according to msdn should have been increased.

Hence I thought I should look at check at the values used by WiX.

So what or where is the schema.msi  that is used by WiX?


---Reply--- Rob Mensching
None of that should be necessary. Any modern WiX Toolset uses the large sizes.

---Reply--- Ronny Eriksson
I think u missed this part of that page u referred to ...


To increase the limit of a database column

1. Export the table to an .idt file. For details, see Msidb.exe<https://msdn.microsoft.com/en-us/library/windows/desktop/aa370083(v=vs.85).aspx>, Export Files<https://msdn.microsoft.com/en-us/library/windows/desktop/aa368570(v=vs.85).aspx>, and Importing and Exporting<https://msdn.microsoft.com/en-us/library/windows/desktop/aa369216(v=vs.85).aspx>.

2. Edit the .idt file to change the column type from i2 to i4, or from I2 to I4.

3. Export the _Validation table to an .idt file.

4. Edit the .idt file to change the values in the MaxValue column of the _Validation table to accommodate the increased column widths.

5. Import the .idt files back into the database.

Note that transforms and patches cannot be created between two packages with different column types.

Ronny Eriksson
-----Original Message-----  Neil Hayes
I'm authoring a large package, more than 32767 files. In order to do that I have to ensure the msi schema supports this.
Looking at this link:
Quote :

If your Windows Installer package contains more than 32767 files, you must change the schema of the database to increase the limit of the following columns:

*         The Sequence column of the File table<https://msdn.microsoft.com/en-us/library/windows/desktop/aa368596(v=vs.85).aspx>.

*         The LastSequence column of the Media table<https://msdn.microsoft.com/en-us/library/windows/desktop/aa369801(v=vs.85).aspx>.

*         The Sequence column of the Patch table<https://msdn.microsoft.com/en-us/library/windows/desktop/aa370737(v=vs.85).aspx>.

If I build a test install I can look at the _Validation table to check the values.

Looking at the File table and the Sequence column this is set to 2147483647
Looking at the Media Table and the LastSequence Column this is set to 2147483647 The Patch table entries are missing.
I then looked in darice.cub but only find a an attributes value under the patch section in the _ReservedBits table.

Which file does WiX use for the msi schema?

Where do I put the Sequence column value for the Patch table? ( I'd have to change the column type for a small integer.)

Do we have a WiX document or other on how to do this?

Is there something else I'm not aware of that should be done?

The plan is to roll out an RTM version
Apply hot Fixes for 3 months
Service pack at every 3 months
Apply hot Fixes for next 3 months.....and so on.

Neil Hayes

More information about the wix-users mailing list