首页 > 解决方案 > 可重复构建的 Wix 工具集构建优化

问题描述

我对wix工具了解不多。

我有一个项目需要打包在许多 msi 包中。文件数在700左右。每个msi包的区别主要在于架构(x86、x64)和一小部分可变资源(不超过5-10个文件)。

完整构建需要一个多小时。大部分时间是由 light.exe 占用的。

是否有可能以某种方式缓存工作结果以加快此过程,因为每个 msi 的不同之处在于最小的文件集?也许我应该以一种特殊的方式组织文件以使这成为可能?

标签: wixwindows-installer

解决方案


您可以为共享文件定义单个压缩文件,为独特的文件集定义单独的压缩文件。使用使用定义的条件编译在 MSI 文件中仅包含选择的文件柜。

<Media Id="1" Cabinet="Shared.cab" CompressionLevel="high" VolumeLabel="Shared binaries." EmbedCab="no" />
<Media Id="2" Cabinet="Set1.cab" CompressionLevel="high" VolumeLabel="Unique files 1" EmbedCab="no" />
<Media Id="3" Cabinet="Set2.cab" CompressionLevel="high" VolumeLabel="Unique files 2" EmbedCab="no" />

<File>元素上设置DiskId=""属性以将单个文件与目标文件柜相关联。

当输入文件在不同版本之间没有变化时,Light 应该能够使用缓存中的现有文件柜。


推荐阅读