9

我最近從globalsign購買了authenticode證書,並且在簽署我的文件進行部署時遇到問題。有一些.exe文件由項目生成,然後放入.msi文件中。當我使用signtool簽署.exe文件時,證書是有效的並且運行正常。問題是,當我構建.msi(使用Visual Studio安裝項目).exe文件失去其簽名。因此,我可以在建立.msi後對其進行簽名,但安裝的.exe文件會繼續執行整個「未知發行商」業務。如何保留這些文件上的簽名以便在客戶機上安裝?如何簽名Visual Studio的安裝文件.msi

回答

11

Visual Studio在編譯時創建兩個文件夾:obj和bin。原來,至少在我的情況下,輸出將始終從obj文件夾複製到bin文件夾中。我在bin文件夾中籤署可執行文件只是爲了讓它們被覆蓋,然後打包到msi中。在obj文件夾中籤署可執行文件解決了這個問題。

+0

謝謝,這解決了我的問題! – 2010-01-05 20:30:09

+0

非常感謝。儘管你的回答非常簡潔易讀,但我曾經看到有人試圖表達同樣的意思。你節省了我一生的時間:) – Dawson 2012-09-22 17:47:58

0

你是正面的安裝程序項目正在查看簽名的二進制文件而不是未簽名的文件嗎?

我沒有使用msi構建器,但是我會發現它會修改它所打包的文件令人驚訝。

+0

謝謝你指點我在正確的方向 – Alex 2009-11-02 15:55:49

11

您可以在以下PostBuiltEvent添加到您的VS安裝項目(項目屬性):

的Windows 8.0:

"C:\Program Files (x86)\Windows Kits\8.0\bin\x86\signtool.exe" sign /a $(BuiltOutputPath) 

的Windows 10:

"C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe" sign /a $(BuiltOutputPath) 

Project properties window

PS :通過引用調整signtools的參數以適應您的需求到the documentation

相關問題