2008-11-11 51 views
20

我需要對ClickOnce應用程序進行一些更改,這些應用程序在一年內未觸及,因此證書已過期。如何更新已過期的ClickOnce證書?

我讀過使用新證書進行發佈會使應用程序失敗,因爲它將使用不同的密鑰進行簽名。

因此,我認爲我需要使用相同的證書,但不知道如何更新它。

回答

11

如果您想要快速解決問題,那麼您可以「更新」現有證書,並給它一個更長的終止日期。

Cliff Stanford已經清理了微軟的「解決方法」,並將它作爲一個簡單的命令行exe提供 - 可在此處獲得:http://may.be/renewcert/ - 尼斯工作Cliff!

+5

有幾個問題,只是FYI。可能想檢查一下。 http://robindotnet.wordpress.com/2010/01/26/how-to-extend-an-existing-certificate-even-if-it-has-expired/ – RobinDotNet 2011-02-08 06:38:46

+2

我知道這個老,但它(很可笑)仍然是一個問題。 如果同事已經創建了新證書(因此「延期」一年),但是當我們發佈時,它會對簽名更改發出警告。這是一個巨大的問題,因爲一旦簽名發生變化,客戶端將無法再收到更新:「無法更新應用程序,請與供應商聯繫。」或者其他的東西。如果他們再次手動安裝,它會創建「名稱-1」圖標/鏈接。 – Keith 2015-04-09 15:21:04

1

如果我沒有記錯的話,我遇到了同樣的問題,只是創建了一個新的證書。

我認爲這些版本之間有自動更新,但沒有持續的損害。這可能有助於我的應用程序僅供內部使用,所以我不需要正確簽署的證書。

1

基本上你必須建立一個應用程序來延長證書的到期時間。上面的鏈接將使您獲得應用程序的C++源代碼。如果你是幸運的並且只是自己簽名,它可能會奏效。如果您使用Verisign等來簽名,您就是SOL。您需要卸載並重新安裝每個應用程序。這就像你購買一輛新汽車的發動機一樣,製造商會給你一本關於重新制造發動機的書,而不是更換或修理它。 ClickOnce不是。

7

下面是有關證書過期的權威性MSDN文章,其中還包含RenewCert更新的鏈接。 http://msdn.microsoft.com/en-us/library/ff369721.aspx這涵蓋了所有情況。

如果您的目標是.NET 3.5,使用自動更新,並且沒有VSTO應用程序,或者您的目標是.NET 4,則更改證書不會導致任何問題。