WiX:在非常大的应用程序中使用多个驾驶室

Mar*_* E. 3 wix wix3

我最近开始学习和使用WiX,我的第一个真正的WiX项目是重新打包Qt的自定义配置.这是一个相当大的挑战,因为Qt项目规模庞大.

我已经设法通过这个过程非常优雅地粉碎我的方式,但最近在链接期间遇到了障碍.我一直在收到Light.exe错误"LGHT0296",很可能是因为我创建了一个远大于2 GB的CAB.在尝试了最高压缩级别并且没有任何区别之后,我唯一的选择就是将安装包拆分成多个CAB文件(旁注:返回的错误对于告诉我哪些课程非常有帮助)行动尝试).

无论如何,在创建多个CAB文件时,我发现自己有点迷失.我不完全确定在这种情况下我应该做什么,而且我无法找到任何有用的文档或示例来完成此拆分.这对我来说最好的方法是什么?

谢谢.

Wim*_*nen 7

您只需声明多个这样的媒体元素:

  <Media Id='1' Cabinet='package1.cab' EmbedCab='no'/> 
  <Media Id='2' Cabinet='package2.cab' EmbedCab='no'/>
Run Code Online (Sandbox Code Playgroud)

如果您的安装介质上有足够的空间并且宁愿消除安装程序用来解压缩文件的时间和磁盘空间,那么您也可以将未打包的文件放在相对于MSI的某个文件夹中(您甚至可以创建一个MSI,以这种方式安装自己):

  <Media Id='3' Layout="./somefolder" />
Run Code Online (Sandbox Code Playgroud)

最后,您通过添加DiskId属性来选择在哪个媒体中放置每个文件:

  <File Source="./somefile" DiskId="2" />
Run Code Online (Sandbox Code Playgroud)