RPK200015: Authoring large packages

Application context

RayPack 1.3

Editions: All

Issue

Authoring large packages may fail during the MSI build process.

Reason

Due to the Windows Installer limitation, the maximum number of files in a single Windows Installer package is limited to 32767 files. If a package deployed by a Windows Installer database has more files, a different (non-standard) table schema is required.

Solution

Warning:
Changing the table schema is generally not recommended for standard tables, as the resulting package may break the functionality or do not work at all.

To avoid manual work, RayPack 1.3 comes with 2 preinstalled MSI templates:

  • Blank.msi (used by default) having the default schema
  • Blank_large.msi having the adjusted schema, allowing to create packages with more than 32767 files

Those files can be found in the %APPDATA%\RayPack\PackageTemplates folder.

Note:
If you upgraded from RayPack 1.2 or older, the default profile may be missing the Blank_large.msi. In that case a copy of the file can be found in subfolder ConfigurationTemplats\PackageTemplates in the root installation folder.

The default package template used by RayPack (Blank.msi) adheres to the standard schema, which means that the maximum number of files is also limited to 32767. In order to create packages exceeding this limit, a second (Blank_large.msi) template has to be used.

The right template has to be selected in the profile configuration.

To use the adjusted template and bypass the original MSI limitations

  1. Open RayPack, press FILE > Options
  2. In the general tab under Windows Installer Template section press BROWSE and select the Blank_large.msi file
  3. Save the settings by clicking OK

The above procedure has to be repeated for each profile that requires adjustment.

After saving the changes, all subsequent projects and databases created by RayPack will be able to handle more than 32767 files.

To revert to the original template

In order to revert to the original standard schema, simply repeat the steps described above, but point to a previous file (for example Blank.msi). After saving the changes, all subsequent projects and databases created by RayPack will not be able to handle more than 32767 files.

Patching, transforming and merging of adjusted databases

The following functions of the Windows Installer technology heavily rely on the installer schema:

  • MST transforms
  • MSP patches
  • Merge modules

Due to Windows Installer limitations, changing the schema may leave the following functions not working for adjusted packages:

  • Patching between two installer databases having a different schema
  • Creating MST transforms between two installer databases having a different schema
  • Merging a merge module having a different schema than the target installer database

Note:
Projects and databases created before changing the template will remain their original schema, even if opened and saved again.

 

CAB layout settings

Due to internal constraints of Windows and Windows Installer technology, the following constraints exist:

  • The size of a single CAB file may not exceed 2GB
  • A single CAB archive may not contain more than 65535 files

Taken both facts into consideration, for big projects that are likely to exceed CAB limits it is recommended to use a split CAB layout in advance. In order to split compressed archive into more parts, the checkbox "Split the CAB files to keep their size the specified limit" in Build options has to be checked. Then, the slider below can be used to specify the required maximum archive size. When a precise value is required, the textbox on the right side can be also used.

When the project is build, RayPack will recompress all files into a specified configuration of compression layout. If the maximum size is bigger than the actual size of compressed resources, only one *.cab file will be created. Otherwise, several *.cab files will be created, all but last having the size of the specified maximum.

More information about CAB splitting can be found in the Product Help, chapter "Build options".

Comments

Powered by Zendesk