2

假设我们部署了一个应用程序的 2.0 版,大约 3000 个用户已经在运行该应用程序。

到目前为止,该应用程序是未签名的(由 VS 的一些自动生成的证书签名)。

用户正在使用 .NET 2.0。

现在我们想部署一个新版本,该版本将使用来自 tucows 的证书进行签名。以下答案之一表明,如果我们以 .NET Framework 2.0 为目标,更改代码签名证书将“破坏”应用程序的身份。这是什么意思?

如何向现有部署添加新的代码签名证书?

通知所有用户从头开始(或从新 URL)重新安装应用程序是不可能的。

(编辑:这是以前的要求,现在无效:

我想确保现有用户根本看不到更新(他们不应该收到新版本可用的通知),而所有新用户在第一次安装时都会收到签名版本. 仅仅签署部署不应该成为打扰现有用户的理由。)

4

3 回答 3

1

我刚刚找到了一篇很好的帖子,深入解释了这个问题:

这既适用于将证书从临时更改为受信任的证书提供者,也适用于过期证书。

他们可能会收到以下错误: + 部署标识与订阅不匹配。

解决方案也是让 .NET 2.0 用户重新安装整个 clickonce 应用程序,这是不可行的另一个解决方案是推送 .NET 3.5 SP1 作为先决条件 - 无论如何都会触发重新安装,并且下载量很大。

链接:http ://social.msdn.microsoft.com/Forums/en/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d

在 .NET 2.0 的情况下破坏应用程序意味着现有用户在安装更新时会出错,或者根本看不到更新。

它链接到包含可以为 .NET 2.0 用户修复应用程序的源代码的帖子: http ://robindotnet.wordpress.com/2009/03/30/clickonce-and-expiring-certificates/

更新过程在于使用与过期证书具有相同密钥的证书重新签署中间更新,发布卸载应用程序的中间更新并强制安装新版本。

非常痛苦!

于 2009-10-16T10:26:15.427 回答
0

是的,这将 100% 有效。如果再次下载程序,新的签名当然会生效。签名不应该影响使用当前版本的用户,只有当程序被下载/更新时。

如果您有自动更新,他们会得到它,但是这给现有用户带来错误的原因,因为它表明您的应用程序现在更加安全,因为他们知道它现在来自您。

于 2009-10-05T12:29:41.400 回答
0

正如凯尔所说,如果你小心的话,它会起作用的。(当然要发布完全相同的版本)

警告:现有用户至少需要 .NET 3.0 SP2 或 .NET 3.5 SP1。

原因:在此之前,签名被认为是应用程序身份的一部分,更改它会破坏已安装用户群的应用程序。

但是请自己尝试这些事情,使用一个小型项目很容易做到,您只需将其发布到您自己机器上的共享中,并尝试在发布之间进行签名等。

于 2009-10-09T06:55:46.733 回答