我正在使用 Wix Toolset v3.7 为应用程序创建 MSI 包。问题是要打包的文件之一的大小超过 4 GB。因此,MSI 生成失败并出现以下错误:
some_file.dat" 太大,文件大小必须小于 2147483648。
我已经寻找解决这个问题的方法,但还没有任何具体的指示。有人知道如何使用 Wix 来解决这个问题吗?任何方式都可以指定将文件拆分为 cab 并在解包时重新合并?
我正在使用 Wix Toolset v3.7 为应用程序创建 MSI 包。问题是要打包的文件之一的大小超过 4 GB。因此,MSI 生成失败并出现以下错误:
some_file.dat" 太大,文件大小必须小于 2147483648。
我已经寻找解决这个问题的方法,但还没有任何具体的指示。有人知道如何使用 Wix 来解决这个问题吗?任何方式都可以指定将文件拆分为 cab 并在解包时重新合并?
FileSize 列是一个DoubleInteger,只能表示 –2,147,483,647 到 +2,147,483,647 字节。CAB 的大小和 MSI 的大小也有其他限制。这些是令人讨厌的限制,但安装程序需要发送大于 2GB 的文件是非常罕见的。
WiX 是基于 Windows Installer 构建的,所以你有点卡住了。您的安装程序是否通过媒体分发?您可能希望使用自定义操作手动复制文件。另一个想法是将文件分成几部分,然后使用自定义操作来加入它们。艰难的选择。
1) 您可以在 msi 构建之前使用通用 zip/package 工具拆分文件,并将该工具用作自定义操作将它们放在一起。当然,您也可以自己编写这样的工具。然后该文件的各个部分由 MSI 以标准方式处理(在您的最终合并操作到来之前)。
2) 如果您不需要该文件的所有 msi 内容,您可以避免将大文件放入 msi,而只需使用工具构建自解压 .exe。这可以启动 msi 并通过脚本复制文件本身。也许是最简单的方法。
3) 使用 MSI 中的DuplicateFiles表,您可以尝试将文件复制为 MSI 本身的自定义操作。有或没有自解压 .exe 的想法。没有意味着除了 .msi 之外大文件保持未压缩。意味着你已经在那个.exe中压缩了。