WiX Toolset捆绑包,总内容大小> 2GB

问题描述 投票:0回答:1

是否有可能制作一个大小为.msi和exe内部捆绑超过2GB的WiX安装包?目前在我的.wxs模板中,我在<chain>内部有一个<bundle>,其中包含多个<MsiPackage>'es。我没有自己创建那个WiX模板,我只是在改进/修复遗留项目中的错误,所以我对WiX工具集不是很熟练。无论如何,然后我使用candle.exe创建一个.wixobj .wxs模板。我将这个.wixobj提供给light.exe。似乎如果要链接的内容的总大小超过2GB,则light.exe会因错误而失败:

错误LGHT0306:最终确定CAB文件时返回错误(E_FAIL)。最常见的情况是在创建包含超过65535个文件的CAB文件时。要么减少安装包中的文件数,要么使用Media元素将安装包的文件拆分为多个CAB文件。

我寻找解决方案,一个建议是使用<MediaElement>,但只有一个<product>标签,我想我不能在我的情况下使用,因为我正在烹饪的捆绑嵌入了自定义引导程序,据我所知wix产品模板与bootstrapper应用程序无关。我发现另一个意见是你不能创建单个包大小超过2GB的WiX捆绑包,但这不是我的情况,因为我捆绑的每个包不超过700MB。

我已经尝试将<MsiPackage>s分离到单独的<PackageGroup>中的<Fragment>中,<Bundle><chain>中引用<PackageGroupRef>,但它没有帮助,light.exe抛出同样的错误。我还发现了一个建议,试图将包放入<Container>中的单独的<bundle>s,但我没有设法尝试它,因为我不明白该怎么做,WiX捆绑文档只是提到它是一些容器但实际上从来没有就如何使用它们提出了建议。

我正在使用WiX 3.11

UPD:我只想补充一些说明。我的目标是创建一个包含所有相关的.cab和其他内容嵌入到最终包中的单个.exe文件,因此提供包含.exe引导程序和多个外部.cab文件的包不是真正的首选选项即使它可能快x倍,除非这是我的唯一解决方案。

UPD 2:似乎你可以组装一个2 GB +大小的捆绑包,它将无法启动。也许是因为输出可执行文件是x86,并且windows无法启动超过2gbs大小的x86可执行文件。我没有设法制作x64捆绑包,也许这样可行,但我从未找到过如何做到这一点。猜猜唯一的选择是让用户下载缺少的内容,并使bundle只包含必要的部分。谢谢大家的帮助。

wix windows-installer bundle filesize
1个回答
0
投票

压缩包不能大于2GB。 Burn支持每个容器最多2GB,并且只能将一个容器连接到bundle .exe本身。

© www.soinside.com 2019 - 2024. All rights reserved.