2012-02-21 91 views
7

失敗作爲我們構建系統的一部分,我們使用signtool.exe用證書來簽署我們的二進制文件一旦被建立。偶爾(這是很難說什麼時候會罷工),簽約失敗:SignTool.exe偶爾退出碼1

error MSB3073: The command "C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin\signtool.exe" [...] exited with code 1. 

按照MSDN的退出代碼爲1意味着有簽署文件的錯誤。我可以驗證該文件沒有簽名。

我也注意到,偶爾,時間戳部分超時了不同的錯誤消息,儘管該文件仍然被簽署(不帶時間戳)。

如何排查和修復這些看似隨意的,不一致的簽名失敗?

+0

我有同樣的經歷:signtool偶爾在時間戳失敗。除了重新運行signtool,似乎沒有解決方案。 – 2012-02-21 16:27:24

+0

@ EugeneMayevski'EldoSCorp有人報告更新他們的Windows XP證書作品,以及其他一些奇怪的東西。我想要一個明確的答案,因爲失敗的構建對我來說非常嚴重。但我擔心你是對的。 – ashes999 2012-02-21 18:08:47

+1

假設您的時間戳服務器完全無法訪問(網絡電纜拔出等)。爲了同樣的目的,signtool或其他工具如何能夠處理這個問題?當然,我希望signtool對失敗更加寬容,並且試圖再次執行時間戳,但是您必須爲可能的時間戳失敗做好準備。 – 2012-02-21 18:14:48

回答

5

我強烈懷疑時間戳服務器的連接失敗,導致偶爾發生故障。也許你在有問題的時候檢查你的系統事件日誌中丟失的連接。

+0

如果是這樣的話,我會如何糾正呢?我不控制時間戳服務器。 – ashes999 2012-02-21 20:26:37

+0

幾乎可以做任何事情。檢查你的基礎設施我們曾經遇到網絡電纜有問題的問題。那很簡單。由於維護可能會造成本地停機。可能是您的互聯網提供商的問題。我的建議(就像Eugene Mayevski'EldoS Corp解釋的那樣):實施一個重試機制。不要讓彙編簽名成爲您流程中時間關鍵的部分。 – 2012-02-21 21:15:03

+0

你可以編輯你的答案,提到構建過程應該更強大?這就是我最終做的。 – ashes999 2012-03-01 22:17:58

2

我有同樣的問題。發生這種情況是因爲MS反惡意軟件進程MsMpEng.exe檢查二進制文件並且不允許任何人訪問它。 爲了解決這個問題,我在RAM磁盤上構建了二進制文件,並且它工作正常。

2

我剛剛到這個問題,在Windows 8.1,所以它不是Windows XP的根證書的問題,有些人引用。

我發現問題造成的,因爲簽字的.exe文件也運行。

如果運行CMD提示符signtool並嘗試註冊它,你會得到一個有用的短信告訴你什麼是錯的,從CreateProcess的比返回碼1(好多了()。

停止運行過程並能夠簽字確定

1

在我的情況下,解決方案中的.pfx文件是舊的,直到有人告訴我用新的有效證書文件替換證書文件,我繼續得到「失敗退出碼1" 的錯誤。

意義,確保該證書文件是有效的,沒有過期。