Wix:如何创建超过 2GB 的 bundle.exe(外部文件)

Posted

技术标签:

【中文标题】Wix:如何创建超过 2GB 的 bundle.exe(外部文件)【英文标题】:Wix: How can I create a bundle.exe with more than 2GB (external files) 【发布时间】:2020-03-18 11:40:06 【问题描述】:

我有多个 MSI 文件,我正在使用 WIX 创建 bundle .exe。捆绑包开始超过 2GB。从this answer 我了解到它不能在单个 .exe 文件中完成,因为刻录不支持大于 2GB 的容器。

是否可以使用(例如外部 .cab 文件)生成 .exe 安装程序? .exe 文件小于 2GB,但需要外部文件?

【问题讨论】:

只有几个链接:the online and / or compression workaround 和 a similar answer thrown in。我认为最新的开发版本中没有修复,但here they are - latest, public WiX developmental releases。 【参考方案1】:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Bundle Name="Bundle Name" Version="1.0.0.0" Manufacturer="Company Inc." UpgradeCode="YOUR_GUID_HERE">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />

    <Chain>
      <MsiPackage SourceFile="stage\msi1.msi" Vital="yes" Visible="yes"/>
      <MsiPackage SourceFile="stage\msi2.msi" Vital="yes" Visible="yes"/>
      <!-- etc... -->
      <!-- msi which will not be compressed: -->
      <MsiPackage DownloadUrl="0" SourceFile="stage\external.msi" Vital="yes" Visible="yes"  Compressed="no"/>
    </Chain>
  </Bundle>
</Wix>

这会产生一系列 msi1、msi2 文件(包含在 .exe 中)。 External.msi 文件不包含在 bundle 中,因此在运行 bundle 时需要将其放在 .exe 文件旁边。

【讨论】:

可以,但需要将外部文件放在 setup.exe 旁边。就我而言,我有 setup.exe 1.5GB 和 external.msi 大约 1GB。安装失败。当我忘记将 external.msi 放在 setup.exe 旁边时。 我想你可以直接从网上下载吗?我还没有测试所有这些。这取决于我猜的外部设置有多大。 我猜external.msi可以从网上下载,但就我而言,我必须离线进行,这个解决方案就可以了。

以上是关于Wix:如何创建超过 2GB 的 bundle.exe(外部文件)的主要内容,如果未能解决你的问题,请参考以下文章

如何将超过 2Gb 的文件上传到 IIS 7.5 / .Net 4?

如何为 Windows 中的进程分配超过 2GB 的内存?

ADO 查询导致 mdb 数据库超过 2GB 限制

PHP AWS Elastic Beanstalk - 不能发布超过 2GB 的文件

运行大小超过 2GB 的 apk 文件时崩溃

LISTENER.LOG日志大小不能超过2GB