<< Click to Display Table of Contents >> RayPack > 7.3 u6 > User Guide > Advanced Topics Authoring Large Packages |
Due to Windows Installer standard limitations, 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.
WARNING Changing the table schema manually is generally not recommended for standard tables, as the resulting package may break the functionality or not work at all. |
RayPack can automatically handle the schema updates when working with RCP or RPP projects. During the build process of an MSI-based output file (RPP/MSI), depending on number of files in the project a custom schema may be applied, enabling authoring large MSI packages. Specifically, the following changes may be introduced:
•The type of the column Sequence in the File table changed from i2 (short) to i4 (long int)
•The type of the column LastSequence in the Media table changed from i2 (short) to i4 (long int)
•The maximum values for columns File > Sequence and Media > LastSequence in the validation table changed from 32767 to 2147483647
The process is fully automated and requires no further action. If the number of files in the output MSI would be less than 32768, no change to the schema will be attempted.
WARNING The produced MSI will have a non-standard definition of the crucial tables File and Media. Patching or transforming MSI/MST having different schemata may fail due to the Windows Installer limitations. To produce a patch or transform between two MSI packages, the schema of all affected tables must be the same. |
Note: This schema change lets you add more than 32767 files to a single MSI project by setting a new limit to a value of 2’147’483’647. No single package will ever reach this limit and remain usable and operational. |
Due to compatibility reasons, RayPack does not change the schema of existing MSI packages when using SAVE/SAVE AS functionality. If you open a package suited for a small number of files (under 32768) and add new files resulting in overflow of the standard limit, RayPack shows a warning that the limit is reached. You will be able to ignore the warning and continue the process. However, after the files are imported, saving such an MSI may fail. In order to persist your changes, use the BUILD option instead of SAVE AS, since building recreates the schema and ensures that the number of files can exceed the standard limit of 32767.
Note: It is not possible to save the MST transform with a different schema than the underlying base MSI. Applying such transform will fail due to the Windows Installer limitations. |
1.Launch RayPack
2.Click on FILE and select the Options item from the menu column on the left.
3.Open the general tab and look-up the Windows Installer Template section
4.Use the browse button and select the Blank_large.msi template file
5.Save the settings by clicking OK
The procedure outlined above has to be repeated for each RayPack settings 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 without additional warnings.
Note: Opening existing packages with an unadjusted file limit will still show a warning when more than 32767 files are attempted to be imported. |
In order to revert to the original standard schema, simply repeat the steps described above, but point to a previous template 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.
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 different schemat
•Creating MST transforms between two installer databases having different schemat
•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 they are opened and saved again. |