Wix 3.6。我试图运行一个包:
<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
我签了这个msi。引导程序也使用(参见此link)签名:
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
答案 0 :(得分:1)
一种可能性是msi是在外部创建的,而不是使用作为WIX一部分的Heat.exe。当我尝试使用VB6文件时,我遇到了类似的问题,并且必须添加标志来忽略这些检查。但在您的情况下,Bootstrapper可能无法正确解释msi。 msi是如何创建的?你用过热火吗?如果可以,你可以发布热线吗?
答案 1 :(得分:1)
我找到了解决方案!我只是跳过签名验证:
<ExePackage SourceFile="MyPath\MyFileToLaunch.exe" Compressed="no" SuppressSignatureVerification="yes"/>