2013-01-17 25 views
1

我一直在試圖簽署MSI文件中後生成事件下面的代碼使用與維克斯在Visual Studio命令提示符中生成事件

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++項目。但是,在構建安裝程序並使用後期構建事件對代碼進行簽名時,我會收到代碼錯誤9009.經過大量調試後,我得出結論:WiX正在使用普通的命令提示符。如何在WiX中使用Visual Studio工具打開cmd.exe

還有另一種簽署我的包裹的方式嗎?

+0

爲什麼不像這樣定義事件:''%programw6432%\ microsoft sdks \ windows \ v7.1 \ bin \ signtool.exe「sign/t etc ..'? (適應你的安裝路徑) –

+0

謝謝@simon完美的工作。我不知道爲什麼我沒有嘗試.. :) –

+0

我會發佈一個答案,然後:) –

回答

1

你可以定義事件是這樣的:

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

注意:您需要的路徑適應您的安裝(程序文件時,Windows SDK版本等),或者你也可以定義你的自己的環境變量。

1

看起來好像有一種內置簽名MSI文件的方式,似乎可以正確使用SignTool:Insignia

+0

嗨,我看到,但它說「Insignia是一種工具用於刻錄與數字簽名的MSI,其外部CAB與簽署。「我沒有外部出租車,我的內置於MSI,我只想簽署MSI本身。感謝您的幫助 –

+1

是的,但進一步閱讀,其中一部分涉及使用SignTool.exe,這意味着你可以使用它來做你自己的簽名? – ChrisPatrick

0
  • 註冊證書,並使用/sha1 hashkey - 只是要確定證書是不錯的(檢查瀏覽器的internetoptions /內容/證書)
  • SignTool路徑 - 使其明確西蒙Mourier建議或將signtool.exe在一個可訪問的路徑
  • 選擇postbuild操作 - 在完成對MSI文件的所有操作後,您應該簽署MSI文件。對MSI(INSERT/UPDATE Property)的任何操作都將撤銷簽名。
相關問題