2012-08-13 108 views
5

我在讀this section of WiX toolset manual,想知道,如何強制WiX引導程序下載MSI包?例如,在安裝我的應用程序之前,引導程序已經下載並安裝:如何強制WiX引導程序下載MSI程序包?

  • .NET Framework Client Profile受
  • 的SQL Server 2008 R2共享管理對象。

我想,我可以描述對應MsiPackage這樣的:

the schema referenceMsiPackage元素告訴,這

"At a minimum, the SourceFile or Name attribute must be specified."

,當然,這不是」 t謊言 - 沒有SourceFileName捆綁項目編譯有錯誤。

添加RemotePayloadMsiPackage這樣的:

<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> 

導致生成錯誤:

Unable to read package ''. This installation package could not be opened. Verify that the package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer package.

我缺少的東西?

回答

4

類似的問題回答here

That's not supported today; RemotePayload supports only the fields needed to verify a downloaded file is what's expected but nothing more than that. That works for .exes because Burn treats those like black boxes. Burn gathers a lot more data from MSI packages.

So the bug is either that it's an allowed child of MsiPackage or that it doesn't yet support all the data needed from an MSI.