在生成事件中与WiX一起使用Visual Studio命令提示符
我一直在尝试使用以下代码在后期生成事件中对文件进行签名在生成事件中与WiX一起使用Visual Studio命令提示符,wix,Wix,我一直在尝试使用以下代码在后期生成事件中对文件进行签名 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"
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"
这将用VisualStudio命令提示符进行签名,类似的代码适用于C++项目。但是,当构建安装程序并使用构建后事件对代码进行签名时,我得到一个代码错误9009。经过大量调试,我得出结论,WiX正在使用普通的命令提示符。如何在WiX中使用Visual Studio工具打开
cmd.exe
或者还有其他方式来签署我的软件包吗?似乎有一种内置的方式来签署MSI文件,它似乎可以正确地使用SignTool:。
- 注册证书并使用hashkey(哈希键)/sha1以确保证书良好(检查浏览器internetoptions/content/certificate)
- SignTool路径-按照Simon Mourier的建议显式设置,或将
放在可访问的路径中SignTool.exe
- 选择“生成后操作”-在完成MSI文件上的所有操作后,应该对MSI文件进行签名。对MSI(插入/更新属性)执行的任何操作都将撤消签名
"%programw6432%\microsoft sdks\windows\v7.1\bin\signtool.exe" sign /t etc..
注意:您需要根据安装(程序文件、Windows SDK版本等)调整路径,或者您也可以定义自己的环境变量。您好,我看到了,但它说“Insignia是一种用于使用外部CAB签名的数字签名来刻写MSI的工具。”我没有外部CAB,我的是嵌入在微星,我只想签署微星本身。感谢您的帮助是的,但进一步阅读,部分内容涉及使用SignTool.exe,这意味着您可以使用它进行自己的签名?为什么不这样定义事件:
%programw6432%\microsoft SDK\windows\v7.1\bin\SignTool.exe“sign/t等”
?(根据您的安装调整路径)谢谢@simon,它工作得非常好。我不知道我为什么不试一下……:)那我就贴出来回答:)