Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix:处理大于2 GB的文件_Wix_Windows Installer_Wix3.7 - Fatal编程技术网

Wix:处理大于2 GB的文件

Wix:处理大于2 GB的文件,wix,windows-installer,wix3.7,Wix,Windows Installer,Wix3.7,我正在使用Wix工具集v3.7为应用程序创建MSI包。 问题是其中一个要打包的文件的大小超过4 GB。 因此,MSI生成失败,出现以下错误: “some_file.dat”太大,文件大小必须小于2147483648 我已经找到了这个问题的解决方案,但还没有找到任何具体的指针。有人知道如何使用Wix来解决这个问题吗?有没有任何方法可以指定一个文件拆分成CAB并在解包时重新合并?Per FileSize列是一个只能表示–2147483647到+2147483647字节的列。CAB的大小和MSI的大小

我正在使用Wix工具集v3.7为应用程序创建MSI包。 问题是其中一个要打包的文件的大小超过4 GB。 因此,MSI生成失败,出现以下错误:

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

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

Per

FileSize列是一个只能表示–2147483647到+2147483647字节的列。CAB的大小和MSI的大小也有其他限制。这些是一些令人讨厌的限制,但安装程序很少需要提供大于2GB的文件

WiX是在Windows Installer上构建的,所以您有点卡住了。您的安装程序是通过媒体分发的吗?您可能希望使用自定义操作手动复制文件。另一种想法是将文件拆分为多个部分,然后使用自定义操作将其合并。选择非常困难。

1)您可以在重新编译msi,并使用该工具作为自定义操作将它们组合在一起。当然,您也可以自己编写此类工具。然后msi以标准方式处理该文件的部分(在最终合并操作到来之前)

2) 如果您不需要该文件的所有msi内容,您可以避免将大文件放入msi,只需使用工具构建一个selfextracting.exe。这可以启动msi并通过脚本复制文件本身。这可能是最简单的方法

3) 使用MSI中的DuplicateFiles表,您可以尝试将文件作为MSI本身的自定义操作进行复制。使用或不使用selfextracting.exe思想。不使用表示除.MSI外,大文件保持未压缩状态。使用表示您已在该.exe中进行了所有压缩