总内容大小>的WiX Toolset捆绑包。 2GB [英] WiX Toolset bundle with total content size > 2GB

查看:155
本文介绍了总内容大小>的WiX Toolset捆绑包。 2GB的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以使WiX安装捆绑包的总.msi和exe内部捆绑包的大小超过2GB?目前,在我的.wxs模板中,我在< bundle> 内有一个< chain> ,其中包含多个< MsiPackage> 是。我并不是一个人创建WiX模板,我只是在改善/修复旧项目中的错误,因此我对WiX工具集不是很熟练。无论如何,然后我使用Candle.exe从该.wxs模板中创建一个.wixobj,并将该.wixobj馈给light.exe。看来,如果要链接的内容总大小超过2GB,light.exe将失败并显示以下错误:

Is it possible to make a WiX installation bundle with size of total .msi's and exe's inside bundle more than 2GB? Currently in my .wxs template I have a <chain> inside of a <bundle> that contains multiple <MsiPackage>'es. I haven't created that WiX template on my own, I'm just improving/fixing bugs in a legacy project, so I am not very proficient with the WiX toolset. Anyway, then I create a .wixobj out of that .wxs template with candle.exe and this .wixobj I feed to light.exe. It seems that if total size of content to link is more than 2GB light.exe fails with error:


error LGHT0306:错误(E_FAIL )在完成CAB
文件时返回。当创建的CAB文件中的
比65535个文件多时,通常会发生这种情况。要么使用Media元素减少
安装包中的文件数量,要么将安装包中的文件分成多个CAB文件,而不是一个

error LGHT0306 : An error (E_FAIL) was returned while finalizing a CAB file. This most commonly happens when creating a CAB file with more than 65535 files in it. Either reduce the number of files in your installation package or split your installation package's files into more than one CAB file using the Media element.

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

I looked for solution and one suggestion was to use <MediaElement> but that one is only available in a <product> tag which I guess I cannot use in my situation, because the bundle that I am cooking has a custom bootstrapper embedded, and as far as I understood wix product template is not about bootstrapper applications. Another opinion that I found was that you can't create WiX bundle with size of single package more than 2GBs, but that is not exactly my case, because each package I am bundling is no more than 700MBs.

我已经尝试将< MsiPackage> s分离为< PackageGroup> '分别在< Bundle> < Fragment> < PackageGroupRef> 中的>< chain> ,但是它没有帮助,light.exe会抛出相同的错误。我还发现了一个建议,尝试将包裹放入< bundle> 中的单独的< Container> s中,但是我没有去尝试,因为我不知道该怎么做,WiX捆绑文档只提到了一些容器,但从未真正给出过使用建议。

I have already tried separating <MsiPackage>s into <PackageGroup>'s in separate <Fragment>'s which was referenced in <Bundle>'s <chain> in <PackageGroupRef>, but it didn't help, light.exe throws the same error. I have also found a suggestion to try to put packages into separate <Container>s in <bundle>, but I didn't manage to try it because I didn't understand how to do it, WiX bundle documentation just mentions that the are some containers but never actually gave an advice on how to use them.

我正在使用WiX 3.11

I am using WiX 3.11

UPD:我只是想补充一些说明。
我的目标是制作一个将是一个.exe文件的文件包,并将所有相关的.cab文件和其他内容嵌入到最终的文件包中,因此交付包含.exe引导程序和多个外部.cab文件的文件包是'除非这是我的唯一解决方法,否则即使它可能快x倍,它还是一个首选的选择。

UPD: I just wanted to add some clarifications. My goal is to make a bundle what would be a single .exe file with all related .cab's and other stuff embedded into the final bundle, so delivering bundle that consist of .exe bootstrapper and multiple external .cab file isn't really a preferred option even though it might be x times faster unless this is the only solution in my case.

UPD 2:
看来您可以组装2 GB +大小的捆绑包,但不会启动。可能是因为输出的可执行文件是x86,而Windows无法启动超过2GB大小的x86可执行文件。我没有设法制作x64捆绑包,也许可以用,但我从未找到如何做的方法。猜测唯一的选择是让用户下载缺少的内容并使捆绑包仅包含必要的部分。谢谢大家的帮助。

UPD 2: It seems that yet you can assemble a bundle with 2 GBs + size, it won't start. Maybe because the output executable is x86, and windows can't launch x86 executables over 2gbs size. I didn't manage to make an x64 bundle, maybe that would work, but I never found how to do it. Guess the only option is to let users download missing content and make bundle only contain essential parts. Thanks everyone for help.

推荐答案

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

Compressed bundles cannot be bigger than 2GB. Burn supports containers up to 2GB each and only one container can be attached to the bundle .exe itself.

这篇关于总内容大小&gt;的WiX Toolset捆绑包。 2GB的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆