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

时间:2012-08-13 09:01:36

标签: wix wix3.6

我正在阅读this section of WiX toolset manual,并想知道如何强制WiX引导程序下载MSI包?例如,在安装我的应用程序之前,必须先下载并安装引导程序:

  • .NET Framework客户端配置文件
  • SQL Server 2008 R2共享管理对象。

我想过,我可以像这样描述相应的MsiPackage

MsiPackage元素的the schema reference告诉您

  

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

当然,它不是谎言 - 如果没有SourceFileName捆绑项目编译错误。

RemotePayload添加到MsiPackage,如下所示:

  <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   安装程序包。

我错过了什么吗?

1 个答案:

答案 0 :(得分:4)

回答类似问题here

  

今天不支持; RemotePayload仅支持字段   需要验证下载的文件是预期的,但仅此而已   比起那个来说。这适用于.exes,因为Burn将那些像黑色一样对待   框。 Burn从MSI包中收集了更多的数据。

     

因此,错误是它是MsiPackage允许的孩子或者那个   它还不支持MSI所需的所有数据。