2008-11-11 98 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,则更改证书不会导致任何问题。