2013-07-22 59 views
2

我正在使用exePackage属性下载一个exe包 - 实际上是来自Microsoft的VSTO运行库。Wix Burn无法下载exePackage

它无法获取包。

我相信这是它加入连锁

<ExePackage Id="VSTORuntime" SourceFile="vstor_redist.exe" Permanent="yes" Vital="yes" Cache="no" Compressed="no" 
      DownloadUrl="http://go.microsoft.com/fwlink/?LinkId=158917" 
      PerMachine="yes" 
      InstallCommand="/q /norestart" 
      DetectCondition="VSTORFeature" 
      InstallCondition="NOT VSTORFeature OR NOT (VSTORVersionV4R >=v10.0.40303) OR NOT (VSTORVersionV4 >=v10.0.21022)" /> 

这是日志文件部分的正确方法。它做了大约三次。

[0D98:06A8][2013-07-22T11:47:31]w343: Prompt for source of package: VSTORuntime, payload: VSTORuntime, path: F:\vstor_redist.exe 
[0D98:06A8][2013-07-22T11:47:31]i338: Acquiring package: VSTORuntime, payload: VSTORuntime, download from: http://go.microsoft.com/fwlink/?LinkId=158917 
[16A0:0BE4][2013-07-22T11:47:37]e000: Error 0x80070490: Failed to find expected public key in certificate chain. 
[16A0:0BE4][2013-07-22T11:47:37]e000: Error 0x80070490: Failed to verify expected payload against actual certificate chain. 
[16A0:0BE4][2013-07-22T11:47:37]e000: Error 0x80070490: Failed to verify signature of payload: VSTORuntime 
+0

认真的没有人吗?为什么。我的代码有什么问题?这是一个非常常见的软件包,需要它,当然微软也有软件包签名等等。 – darbid

+0

现在有2个答案......你可以请upvote答案(S)的工作和评论答案(S),无法正常工作。谢谢! –

回答

1

我认为你需要在RemotePayload标签指定证书密钥,就像这样:

<ExePackage Id="VSTORuntime" SourceFile="vstor_redist.exe" Permanent="yes" Vital="yes" Cache="no" Compressed="no" 
     DownloadUrl="http://go.microsoft.com/fwlink/?LinkId=158917" 
     PerMachine="yes" 
     InstallCommand="/q /norestart" 
     DetectCondition="VSTORFeature" 
     InstallCondition="NOT VSTORFeature OR NOT (VSTORVersionV4R >=v10.0.40303) OR NOT (VSTORVersionV4 >=v10.0.21022)"> 
<RemotePayload ProductName="Windows Installer 4.5" 
       Description="Windows Installer 4.5 Setup" 
       CertificatePublicKey="F321408E7C51F8544B98E517D76A8334052E26E8" 
       CertificateThumbprint="D57FAC60F1A8D34877AEB350E83F46F6EFC9E5F1" 
       Hash="86E1CC622DBF4979717B8F76AD73220CDB70400B" 
       Size="3327000" 
       Version="4.5.0.0" /> 
</ExePackage> 

这只是一个想法... 或尝试使用Fiddler找到,如果they'r的错误404或类似的东西...

1

我已经遇到了这个问题,当引导程序包与一个版本的exe包编译时,但另一个版本坐在旁边的安装程序可执行文件,当您尝试运行它。我怀疑在编译bundle时,Burn会自动将证书信息从源文件中提取出来。

例如,如果您Setup.exe文件是C:\DownloadsC:\Downloads还包含一个版本的vstor_redist.exe这是一本不同的,当你建立Setup.exe,你会看到这个错误。您可以通过从C:\Downloads中删除vstor_redist.exe - Setup.exe然后关闭并从指定的URL下载正确的版本来解决此问题。