Wix:处理大于2 GB的文件

时间:2013-08-09 14:17:18

标签: wix windows-installer wix3.7

我正在使用Wix Toolset v3.7为应用程序创建MSI包。 问题是要打包的文件之一的大小超过4 GB。 结果,MSI生成失败并出现此错误:

  

some_file.dat“太大,文件大小必须小于2147483648。

我已经搜索了这个问题的解决方案,但还没有任何具体的指针。有人知道如何使用Wix来解决这个问题吗?有什么方法可以指定文件拆分成cab并在解包时重新合并?

2 个答案:

答案 0 :(得分:0)

File Table (Windows)

FileSize列是DoubleInteger,它只能表示-2,147,483,647到+2,147,483,647字节。 CAB的大小和MSI的大小也有其他限制。这些是令人烦恼的限制,但很少有安装人员需要发送大于2GB的文件。

WiX基于Windows Installer构建,因此您有点卡住了。您的安装程序是通过媒体分发的您可能希望使用自定义操作手动复制文件。另一个想法是将文件拆分成碎片,然后使用自定义操作加入它们。艰难的选择。

答案 1 :(得分:0)

1)您可以在msi构建之前使用通用zip / package工具拆分文件,并使用该工具作为自定义操作将它们组合在一起。当然你也可以自己编写这样的工具。然后,MSI以标准方式处理该文件的各个部分(在最终合并操作到来之前)。

2)如果你不需要该文件的所有msi内容,你可以避免将大文件放在msi中,只需使用工具来构建一个自我提取的.exe文件。这可以启动msi并通过脚本复制文件本身。也许是最简单的方法。

3)使用MSI中的 DuplicateFiles 表,您可以尝试将文件复制为MSI本身的自定义操作。有或没有selfextracting .exe的想法。没有意味着除了.msi之外大文件保持未压缩状态。通过意味着你已经压缩了.exe。