1

我一直在尝试使用以下代码在构建后事件中签署MSI文件

signtool sign /t http://timestamp.verisign.com/scripts/timestamp.dll /f "E:\Products\Tools\DigitalId\Certificate.pfx" /p 1501ocbc /d "Server" "E:\Products\Setup\Server_Setup\ServerSetup\bin\Release\en-US\ServerSetup.msi"

这将使用 Visual Studio 命令提示符签署 OK,类似的代码适用于 C++ 项目。但是,在构建设置并使用构建后事件对代码进行签名时,我收到代码错误 9009。经过多次调试,我得出结论,WiX 使用的是普通命令提示符。如何cmd.exe进入 WiX 以使用 Visual Studio 工具打开?

或者还有其他方式可以在我的包裹上签名吗?

4

3 回答 3

1

看起来有一种内置的 MSI 文件签名方式,似乎可以与 SignTool: Insignia一起正常工作。

于 2013-01-24T11:44:29.790 回答
1

您可以像这样定义事件:

"%programw6432%\microsoft sdks\windows\v7.1\bin\signtool.exe" sign /t etc.. 

注意:您需要调整安装路径(程序文件、Windows SDK 版本等),或者您也可以定义自己的环境变量。

于 2013-01-28T14:31:12.090 回答
0
  • 注册证书并使用/sha1hashkey - 只是为了确保证书是好的(检查 browser-internetoptions/content/certificate)
  • SignTool 路径 - 按照 Simon Mourier 的建议使其明确或放入signtool.exe可访问的路径
  • 选择构建后操作 - 在完成对 MSI 文件的所有操作后,您应该对 MSI 文件进行签名。对 MSI(INSERT/UPDATE 属性)的任何操作都将撤消签名。
于 2013-01-28T13:07:44.767 回答