压缩和未压缩的源

包作者可以通过压缩源文件并将其包含在压缩包文件中来减小其安装包大小。 源文件映像可以压缩、解压缩,也可以混合这两种类型。

压缩源

完全由压缩文件组成的源应包含字数摘要属性中的压缩标志位。 压缩的源文件必须存储在位于 .msi 文件内的数据流中的文件柜中,或者存储在位于源树的根目录的单独的文件柜中。 源中的所有文件柜都必须列在 Media 表中。

未压缩的源

完全由未压缩的源文件组成的源应省略字数摘要属性中的压缩标志位。 源中的所有未压缩文件都必须存在于 Directory 表指定的源树中。

混合源

要在同一包中混合使用压缩和未压缩的源文件,请通过在特定文件上设置 msidbFileAttributesCompressed 或 msidbFileAttributesNoncompressed 位标志来覆盖字数摘要属性默认值。 如果文件的压缩状态与字数摘要属性指定的默认值不匹配,则在 File 表的 Attributes 列中设置这些位标志。

例如,如果字数摘要属性设置了压缩标志位,则所有文件都被视为压缩到一个文件柜中。 源中的任何未压缩文件都必须在 File 表的 Attributes 列中包含 msidbFileAttributesNoncompressed。 未压缩的文件必须位于源树的根目录中。

如果字数摘要属性设置了未压缩的标志,则默认情况下会将文件视为未压缩文件,并且任何压缩文件都必须在 File 表的 Attributes 列中包括 msidbFileAttributesCompressed。 所有压缩的文件必须存储在位于 .msi 文件内的数据流中的文件柜中,或者存储在位于源树的根目录的单独的文件柜中。

有关详细信息,请参阅使用文件柜和压缩源