如何强制WiX引导程序下载MSI包?

6
我正在阅读WiX工具集手册的这一部分,并且想知道如何强制WiX引导程序下载MSI包?例如,在安装我的应用程序之前,引导程序必须下载并安装以下内容:
  • .NET Framework客户端配置文件
  • SQL Server 2008 R2共享管理对象。
我想过,我可以像这样描述相应的MsiPackage

但是 MsiPackage元素的模式参考表明:

“至少必须指定SourceFile或Name属性。”

当然,它并没有说谎 - 没有SourceFileName,捆绑项目将编译出错。

像这样向MsiPackage添加RemotePayload

  <MsiPackage Name="redist\SharedManagementObjects.msi"
              DisplayName="Microsoft SQL Server 2008 R2 Management Objects"
              DisplayInternalUI="yes"
              Vital="yes"
              DownloadUrl="http://go.microsoft.com/fwlink/?LinkID=188438&amp;clcid=0x409">
    <RemotePayload Size="10953728"
                   Version="10.50.1600.1"
                   ProductName="Microsoft SQL Server 2008 R2 Management Objects"
                   Description="Microsoft SQL Server 2008 R2 Management Objects"
                   Hash="6ce3a433309c63d98bcf0e2b9f1dfaed8cc18783"/>
  </MsiPackage>

导致构建错误:

无法读取软件包“”。此安装程序包无法打开。请验证软件包是否存在并且您可以访问它,或联系应用程序供应商验证这是一个有效的 Windows Installer 软件包。

我是否遗漏了什么?

1个回答

4

类似的问题在这里得到了解答:

目前不支持此功能;RemotePayload仅支持验证下载文件是否符合预期所需的字段,但没有更多的支持。这适用于.exe文件,因为Burn将其视为黑盒子。 Burn从MSI软件包中收集了更多数据。

因此,这个问题可能是MsiPackage的允许子级,或者它还没有支持所有需要的MSI数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接