我正在探索的數字簽名功能在維克斯環境(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年報道)的?