2012-01-25 21 views
3

我有一個MSBuild,它通過Jenkins在其中一個組件中使用簽名代碼運行。通過Jenkins作爲另一個用戶運行構建時發生SignTool錯誤

當我在啓動Jenkins之後運行構建作爲Visual Studio項目最初構建的同一用戶時,它工作正常。但是,當我通過另一個本地管理員啓動的計劃任務以同一用戶身份運行項目時,即使進程列表中的用戶名相同,構建也會失敗。

因此,例如,說該項目正在建設精細,因爲用戶Admin,無論是在Visual Studio和通過用戶Admin啓動Tomcat上詹金斯實例啓動一個MSBuild時。

當我切換用戶John.admin,本地管理員,並運行我的計劃任務啓動Tomcat作爲用戶Admin時,出現下列SignTool錯誤:

VCBUILD: SignTool error : ISignedCode::Sign returned error: 0x80092006 

在進程列表,它Tomcat以Admin用戶身份運行,與Admin已經以startup.bat啓動(Tomcat是獨立安裝)相同。

我一直在嘗試一段時間,但無法弄清楚爲什麼通過任務啓動時構建失敗。任何人都可以看到問題嗎?在機器重新啓動並通過另一個本地管理員啓動後,Jenkins必須建立成功。

編輯:我複製所有證書的Admin用戶(使用管理單元),所有%PATH%%CD%%USERPROFILE%變量是相同的,任務是從同一個文件夾中運行。唯一的區別是我可以看到的是,用戶會話ID是不同的。我知道這一點,因爲如果我以John.admin開始計劃任務,然後以Admin登錄,則java.exe不在進程列表中,直到我單擊「show processes from all users」,然後顯示它以用戶身份運行Admin

我幾乎沒有想法,所以我可以嘗試任何事情。

回答

1

確實很難說,但如果我正確地理解了這個問題,我建議您將精力集中在任何環境變量或從父進程(計劃任務)傳遞的其他用戶特定配置上它產生了子進程(Tomcat)。即使Tomcat以管理員身份運行,但有可能將%USERNAME%傳遞給它,因爲John.admin或%USERPROFILE%甚至%PATH%被錯誤傳遞。

另一種可能性:對於特定的計劃任務,過去我沒有正確設置「start in」文件夾,即使可以找到程序/腳本也被燒燬。

要排除故障,可以通過臨時修改startup.bat將環境變量,當前目錄和其他相關配置信息的值寫入日誌文件。

我對SignTool並不熟悉,但這也可能有所幫助 - SignTool Error: ISignedCode::Sign returned error: 0x80092006 - 答案討論了私鑰存儲與搜索的位置。

+0

感謝您的提示,但不幸的是,構建仍然失敗。該項目最初是通過視覺工作室製作和簽署的,所以我的猜測是有一些更復雜的事情發生。我會繼續研究它。 –

+0

我將賞金賞賜爲謝謝你的努力(否則它將被浪費),所以謝謝!我仍然試圖找出一些東西。 –

+0

非常感謝,抱歉,我忍不住進一步。 –

相關問題