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