Wix工具集MsiPackage Prereq

时间:2013-06-14 14:19:31

标签: wix wix3

我正在尝试使用WiX Bootstrapper安装prereq。问题是,先决条件是如果未安装,则需要从远程URL下载MSI。如果我使用ExePackage元素,它将失败,说明msi不是有效的Win32应用程序,但如果我使用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.

以下是我正在使用的示例MsiPackage:

  <MsiPackage 
       Id="ReportViewer2012Installer" 
       Name="ReportViewer.msi" 
       Compressed="no"
       Cache="no" 
       Permanent="yes" 
       Vital="yes" 
       DownloadUrl="http://go.microsoft.com/fwlink/?LinkID=217022" 
       InstallCondition="NOT ReportViewer2012Installed" 
       SuppressSignatureVerification="yes">
           <RemotePayload 
                Description="Report Viewer 2012 Setup"
                Hash="D80B972F7CBFEEB5AF5295890B5652D080286F89" 
                ProductName="Report Viewer 2012" 
                Size="7610368" Version="11.0.0.0" />
  </MsiPackage>

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

您使用的DownloadUrl不是实际的下载网址。它被重定向(HTTP状态302)到

http://download.microsoft.com/download/F/B/7/FB728406-A1EE-4AB5-9C56-74EB8BDDF2FF/1033/x86/ReportViewer.msi

改用它。

您可以通过导航到原始网址然后查看网络浏览器的下载历史记录来找到它。它应该显示下载时使用的实际URL。对于更技术性的方法,它会出现在响应标题中,您可以使用Web浏览器开发人员工具(通常在浏览器中使用F12打开)查看。