用于可重复构建的 Wix 工具集构建优化

Wix toolset build optimization for repeatable builds

我对wix工具了解不多

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

完整构建需要一个多小时。大部分时间都被light.exe.

占用了

是否有可能以某种方式缓存工作结果以加快此过程,因为每个 msi 的区别在于最少的文件集?也许我应该以一种特殊的方式组织文件以实现这一点?

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

<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 应该能够使用缓存中的现有橱柜。

计算机和磁盘:首先显而易见的是:您是否在一台好的计算机上使用快速磁盘?或者您是从网络中提取文件还是写入慢速磁盘? 700 个文件并不算多。它们很大吗?您要构建多少个设置?一个好的 SSD 或 NVME 磁盘应该有帮助 - 还有一些好的 CPU 在它后面。

构建速度:我有关于构建优化的现有答案: - I would recommend you build a shared setup and install via a bundle (Burn builds setup.exe executables that can install embedded MSI files or other setup-type files). A separate MSI that you build seldomly can work. Thoughts on setup cohesion and coupling.

WiX 帮助文件How To: Optimize build speed

Cab Cache & wixlibs:请阅读:


链接: