在构建事件中使用Visual Studio命令提示符和WiX

时间:2013-01-17 10:39:34

标签: wix

我一直在尝试使用以下代码在post build事件中签署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命令提示符签名,类似的代码适用于C ++项目。但是,在构建设置并使用post build事件签署代码时,我收到代码错误,9009。经过大量调试后,我得出结论,WiX正在使用普通的命令提示符。如何在WiX中使用Visual Studio工具打开cmd.exe

或者是否有其他方式签署我的包裹?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您可以像这样定义事件:

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

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

答案 2 :(得分:0)

  • 注册证书并使用/sha1哈希密钥 - 只是为了确保证书是好的(检查浏览器 - internetoptions / content / certificate)
  • SignTool路径 - 明确表示Simon Mourier建议或将signtool.exe置于可访问路径中
  • 选择postbuild操作 - 在MSI文件上完成所有操作后,您应该签署MSI文件。对MSI(INSERT / UPDATE属性)的任何操作都将撤消签名。