我有一个项目,我使用click一次来创建安装程序包。我们使用供应商颁发的证书签署此项目,而不是测试证书。由于我们的证书在5月份到期,我们必须使用新证书更新签名清单。
因此,我们创建了一个新证书,使用此新证书签署了ClickOnce清单并创建了一个新的安装程序包。这适用于新安装但由于证书不同而无法更新应用程序。根据我的搜索,客户必须手动卸载应用程序并使用新的签名证书安装新版本。不酷:(
根据Robin Shahan的说法,最好的方法是创建一个新的安装程序,删除现有版本(使用旧证书)并安装新版本(使用新证书)。 https://msdn.microsoft.com/en-us/library/ff369721.aspx
按照上面建议的步骤,我使用新证书创建了一个新包,并在另一个URL中设置。 然后,我尝试使用旧证书创建一个新包。它在第一次尝试时失败,因为之前的证书已过期。我可以创建包的唯一方法是将我的计算机日期设置为4月,然后创建包。
卸载旧版本并安装新版本的工作流程完美无缺,仅当计算机的日期设置为过去时(在我的情况下,4月份)。如果我尝试使用过期的证书安装软件包,它将显示以下消息,我认为这是预期的:
System.Security.SecurityException:此处的自定义功能 应用程序将无法正常工作,因为用于签署的证书 SuperPlugin的部署清单或其位置不受信任。 请联系您的管理员以获得进一步的帮助。
在同一篇文章中,Robin还建议使用RenewCert的过期证书的解决方法,从https://robindotnet.wordpress.com/2010/01/26/how-to-extend-an-existing-certificate-even-if-it-has-expired/
创建具有相同公钥/私钥对的新版本所以我的想法是创建具有新过期日期的旧证书的软件包,一旦用户运行此软件包,它将卸载以前的版本并使用新证书从不同的URL安装新版本。
所以,我试图运行RenewCert可执行文件,但我没有成功。我从Cliff Stanford的网站http://may.be/renewcert/下载并构建了该项目,我收到了这个错误:
PFXImportCertStore失败,错误0x56:指定的网络 密码不正确。
然后我卡住了......所以根据Robin的说法,如果我的目标框架是.Net 4.0,我应该没有问题,但看起来并非如此。我使用的是Visual Studio 2012,我的项目的目标框架是.net 4.0,它也包含在先决条件中。该项目从3.5框架更新到近2年前的4个。也许这就是问题?
好的,我的问题是:如何解决这个问题?有没有更简单的方法,只需使用常规Clickonce?如果要进行卸载/安装,如何正确更改过期的证书以创建程序包?如果我的目标框架是.net 4,为什么不起作用?
提前致谢