包无效有效载荷原因:0x80070570



Wix 3.6。我想运行一个bundle:

<Bundle Name="Setup" Version="1.0.0.0" Manufacturer="Bentley" UpgradeCode="37d68094-0b98-4b16-bfbe-7f0d3015064a">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
    <Chain>
  <MsiPackage SourceFile="path/to/MyMsiFileWhichIsFine.msi" Cache="yes" Compressed="no" InstallCondition="1"/>
    </Chain>

执行结果:

0x800b0109 A certification chain processed, but terminated in a root certificate which is not trusted by the trust provider.

日志文件显示:

Detected partially cached package: MyMsiFileWhichIsFine.msi, invalid payload: MyMsiFileWhichIsFine.msi, reason: 0x80070570

我签了这封信。引导程序也使用(参见此链接)签名:

insignia -ib Setup.exe -o engine.exe
signtool engine.exe (extra parameters excluded for simplicity)
insignia -ab engine.exe Setup.exe -o Setup.exe
signtool Setup.exe

一种可能性是msi是在外部创建的,而不是使用WIX的一部分Heat.exe。当我尝试使用VB6文件时,我也遇到过类似的问题,并且不得不添加标志来忽略这些检查。但在您的情况下,Bootstrapper可能无法正确解释msi。msi是如何产生的?你用了Heat吗?如果有的话,你能把热火队的数据贴出来吗?

我找到解决办法了!我跳过签名验证,像这样:

<ExePackage SourceFile="MyPathMyFileToLaunch.exe" Compressed="no" SuppressSignatureVerification="yes"/>

最新更新