Compressed and Uncompressed Sources

Package authors can reduce the size of their installation packages by compressing the source files and including them in cabinet files. The source file image can be compressed, uncompressed, or a mixture of both types.

Compressed Sources

A source consisting entirely of compressed files should include the compressed flag bit in the Word Count Summary Property. The compressed source files must be stored in cabinet files located in a data stream inside the .msi file or in a separate cabinet file located at the root of the source tree. All of the cabinets in the source must be listed in the Media table.

Uncompressed Sources

A source consisting entirely of uncompressed source files should omit the compressed flag bit from the Word Count Summary Property. All of the uncompressed files in the source must exist in the source tree specified by the Directory table.

Mixed Sources

To mix compressed and uncompressed source files in the same package, override the Word Count Summary property default by setting the msidbFileAttributesCompressed or msidbFileAttributesNoncompressed bit flags on particular files. These bit flags are set in the Attributes column of the File table if the compression state of the file does not match the default specified by the Word Count Summary property.

For example, if the Word Count Summary property has the compressed flag bit set, all files are treated as compressed into a cabinet. Any uncompressed files in the source must include msidbFileAttributesNoncompressed in the Attributes column of the File table. The uncompressed files must be located at the root of the source tree.

If the Word Count Summary property has the uncompressed flag set, files are treated as uncompressed by default and any compressed files must include msidbFileAttributesCompressed in the Attributes column of the File table. All of the compressed files must be stored in cabinet files located in a data stream inside the .msi file or in a separate cabinet file located at the root of the source tree.

For more information, see Using Cabinets and Compressed Sources.