wix - 可重复构建的 Wix 工具集构建优化
问题描述
我对wix工具了解不多。
我有一个项目需要打包在许多 msi 包中。文件数在700左右。每个msi包的区别主要在于架构(x86、x64)和一小部分可变资源(不超过5-10个文件)。
完整构建需要一个多小时。大部分时间是由 light.exe 占用的。
是否有可能以某种方式缓存工作结果以加快此过程,因为每个 msi 的不同之处在于最小的文件集?也许我应该以一种特殊的方式组织文件以使这成为可能?
解决方案
您可以为共享文件定义单个压缩文件,为独特的文件集定义单独的压缩文件。使用使用定义的条件编译在 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 应该能够使用缓存中的现有文件柜。
推荐阅读
- google-chrome - Chrome 67 破坏了我的 WebComponent
- apache-spark - Spark 读取 avro
- python - 如何使用 python2.7 使用嵌套 for 循环遍历数据框并附加到新的数据框列?
- php - Vueapp AJAX数组不起作用
- javascript - eventlistener on nested classnames
- css - 填充替代边距:自动
- api - 调用 Dialogflow gRPC API 时如何获取长时间运行的操作的状态?
- css - 100% 宽度绝对定位的 flexbox 不受 IE 中的 CSS Grid 约束
- binary-search-tree - 二叉搜索树迭代器java
- angular6 - Angular 反应式 FormGroup 未在第三方控件中重置