我們正在C#中構建一個Outlook插件。它在VS中沒有問題,並且使用臨時pfx證書進行簽名。我們希望將構建過程放在Jenkins中並讓它自動運行。如何手動設置MSBuild標誌目標的密碼?
我們嘗試使用MSBuild運行VS解決方案。它在開發機器上的偉大工程,但在詹金斯有一個錯誤:
Cannot import the following key file: OutlookPlugin_TemporaryKey.pfx. The key file may be password protected. To correct this, try to import the certificate again or manually install the certificate to the Strong Name CSP with the following key container name: VS_KEY_A688DC31A30F3EF1
我們不知道如何指定自動生成的PFX密碼。或以其他方式自動執行簽名過程。
我們發現的一個解決方案是在VS中在同一臺機器上和與自動化過程相同的用戶中打開項目並輸入密碼。這不起作用,可能是因爲詹金斯每次都擦掉了工作區。 如果我們試圖在沒有簽名的情況下進行編譯,然後再簽名,它會抱怨ClickOnce程序集必須簽名。看來Office插件必須使用ClickOnce。
那麼,如何在構建文件的某處指定pfx密碼?
我們使用VS 2010與Office Tools。
主要關心的不是安全問題。我們只是不知道如何將密碼輸入到MSBuild腳本中。我們使用項目中的sln文件作爲MSBuild腳本。 – alexsimi
@alexsimi添加了有關如何添加MSBuild屬性的信息。 – akton
我們的csproj文件中沒有任何SignTask。當我們在控制檯中運行MSBuild時,我們可以看到正在執行的任務,但我們無法確定哪一個是符號任務,因此我們可以覆蓋它。可能是因爲這個項目是一個ClickOnce Outlook插件,與某個普通的c#項目不同。 – alexsimi