我正在探索的数字签名功能在维克斯环境(Windows安装程序MSI和Windows补丁MSP)。
在我的情况下,我生成一个非嵌入式“Data1.cab”的MSI。Insignia添加的数字签名与PatchCertificates冲突?
什么,我已经明白这是很重要的:
- 迹象任何外部驾驶室
- 题微星与驾驶室的数字签名
- 标志符号微星本身
我在官方的WiX insignia documentation以下在visual studio 2015中使用:
所以在* .wixproj文件中我添加了f下一节。
为简洁起见,省略了signtool.exe的其他命令行参数。
<Import Project="$(WixTargetsPath)" />
<PropertyGroup>
<SignOutput>true</SignOutput>
</PropertyGroup>
<Target Name="SignMsi">
<Exec Command="signtool.exe sign /a "%(SignMsi.FullPath)"" />
</Target>
<Target Name="SignCabs">
<Exec Command="signtool.exe sign /a "%(SignCabs.FullPath)"" />
</Target>
到目前为止这么好。
但我也需要PatchCertificates
未来UAC patches。
所以在我* .wxs源文件我有:
<Product ... >
<Package ... />
<Media Id="1" Cabinet="Data1.cab" EmbedCab="no"/>
<PatchCertificates>
<DigitalCertificate SourceFile="$(env.MY_CERTIFICATE_DIRECTORY)/cert256.pem" Id="patchcert"/>
</PatchCertificates>
</product>
现在当我编译Visual Studio中的项目,我总是得到以下错误:
C:\Program Files (x86)\WiX Toolset v3.10\bin\insignia.exe -im C:\src\Test\setup\obj\Release\bin\MyProduct.msi -out C:\src\Test\setup\obj\Release\bin\MyProduct.msi
Insignia.exe(0,0): error INSG0001: Cannot find the requested object.
Done building project "MyInstaller.wixproj" -- FAILED.
-
观察:
- 既fe对自己atures工作正常
- ,但如果我将二者结合起来编译失败
是它们彼此不兼容?
-
额外的关键字:
- WiX的属性:DigitalCertificate,PatchCertificates,的DigitalSignature
- MSI表:MsiDigitalCertificate,MsiPatchCertificate,MsiDigitalSignature
- 一般条款:数字证书,数字签名,维克斯,徽章,奉献,公钥
-
更新:
是它可能是因为这个bug(见
sourceforge,看
github)(2013年报道)的?