2012-05-09 24 views
12

我有一個OneClick部署的VSTO插件,它使用最新的Verisign代碼簽名證書(PFX)簽名。我已經驗證了我正在用手機上的Verisign支持正確簽名 - 他們同意。我正在與VS2010建設。儘管如此,當我嘗試安裝時,Addin會顯示「未知發佈者」。未知的發佈者仍然出現在使用VS2010構建的正確代碼簽名的VSTO插件上

爲什麼?

如何用PFX證書上的發佈者名稱替換「未知發佈者」?

這就是我所做的一切,試圖解決這個問題至今:

  1. 找到this question關於加載項「未知發佈者」的問題。 accepted answer to that question討論了使用mage.exe簽署部署和應用程序清單。

  2. 我使用mage.exe將PFX簽名應用於應用程序和部署清單都無濟於事;當我安裝Addin時,「Unknown Publisher」仍然顯示。只有到那時,我纔看到MS程序管理員在最後一個鏈接的頁面上發表評論,VSTO Addin在2008年或更早版本中構建的不讀取應用程序或部署清單。

  3. 然後我看到了同樣的MS項目經理的評論在底部連接to this page並聲稱開始在VS2010是VSTO加載項與在鏈接頁面給出現在有自己的清單讀取並在外接顯示正確的發佈者名稱指定發佈安裝。

我所做的這一切和我正確的代碼簽名一鍵式部署出版商仍顯示「未知發佈者」 - 爲什麼?

+0

我在這裏結束了尋找解決的辦法,以顯示在Office的插件發佈 - 對話框。對於像我這樣的人:不幸的是,這是不可能的,請參閱http:// stackoverflow。com/a/38379585/1200847 –

回答

6
  1. 在您的本地機器上安裝證書。在Windows資源管理器中右鍵單擊證書文件,選擇安裝PFX,然後按照說明進行操作。

  2. 確保VSTO項目清單和組件已簽名。在簽名選項卡上的VSTO項目屬性中,應檢查「簽署ClickOnce清單」(如果沒有,請選擇您的PFX文件)。還應檢查「簽署裝配」並使用相同的PFX文件。

  3. 發佈VSTO後,您需要從命令行簽署清單和已發佈的.vsto文件。在運行mage.exe之前,您還需要將bin中的.dll文件複製到發佈的文件夾中(以避免「文件未找到」錯誤)。請遵循以下語法,爲了安全起見,我強烈建議您同時簽署兩個.vsto。

set AppPublishPath=bin\Release\app.publish 
set AppPublishVersionPath=bin\Release\app.publish\Application Files\MyProjectName_1_0_0_0 

set CertificatePath=C:\SignedCertificate.pfx 
set CertificatePassword=password 

copy bin\*.dll "%AppPublishVersionPath%" 

mage -update "%AppPublishVersionPath%\MyProjectName.dll.manifest" -certfile "%CertificatePath%" -Password %CertificatePassword% 
mage -update "%AppPublishVersionPath%\MyProjectName.vsto" -appmanifest "%AppPublishVersionPath%\MyProjectName.dll.manifest" -certfile "%CertificatePath%" -Password %CertificatePassword% 
mage -update "%AppPublishPath%\MyProjectName.vsto" -appmanifest "%AppPublishVersionPath%\MyProjectName.dll.manifest" -certfile "%CertificatePath%" -Password %CertificatePassword% 

(很抱歉,如果語法沒有發現上。我從我自己的代碼庫複製並修改了它的簡單性。)

+3

我最近遇到了與Symantec EV證書相同的問題。除了Keith的回答,我還必須使用「-pub <公司名稱>」參數手動指定發佈者。它不會自動從代碼簽名證書中提取。 –

相關問題