ClickOne 解决VS发布问题——“因为某项未生成,所以无法发布”(ClickOnce签名过期问题)

自己的一个Visual Studio项目,忽然在近日发布升级时失败了,显示错误信息——“因为某项未生成,所以无法发布”!自己可是一直如此发布的,怎会失败呢。于是,将项目复制到虚拟机中再发布,还是如此;换了一台机器,也是这样。看来,只有面对现实了。

      先到网上看看,搜索其他人的痛苦经历。看了几篇,同样没合适的解决方法。
      看来,自力更生了。打开项目属性,反复查看,跟本错误比较接近的主题应该是“签名”和“安全性”了。但“安全性”中,看不出改动和需要修改的地方;再看“签名”,反复比较,发现竟然有个到期日期是8月份的,已经过期!如图所示,选择“创建测试证书”,再填写密码并确认。这样,到期日期就延长到2009-9-16了。于是,再次发布,成功完成。



      但是,不要高兴过早了!电话来了,以前安装使用的软件,在线更新后,显示出错,无法使用了!看来,上面这种方法,只能作为重新发布一个安装地址使用,而不能在原来位置上升级;也就是要用户也进行一次彻底更新,卸载后重装。
      还是得找一个更适合的方法,于是有了以下的解决方法:
      (1)下载此处提供的文件,解压后将它复制到C:\下,为使用做准备。

点击下载此文件

      (2)将你的项目文件夹中的签名文件(.pfx)复制到C:\下,为使用做准备。
      (3)点击:开始--运行,输入
程序代码: [ 复制代码到剪贴板 ]
c:\pfx_renew old.pfx new.pfx \"CN=new\" aaa

回车运行。上述命令中,假设你复制到C盘下的证书文件名为old.pfx,它的密码为aaa;执行后,同样在C盘下,生成新证书文件new.pfx,它的密码也是aaa。这样,把这个new.pfx复制到项目文件夹中,在visual studio 下的项目属性中,添加该证书文件,你的有效期限就又再延长5年了,并且与以前的认证兼容。
      (4)按正常方式,进行项目的升级发布。
      (5)注意,上述的证书更新命令,本人在Windows 2000下通过。此外,在该命令的“CN=...内容中,即是证书导入后的持有者和颁布者,可以选择如CN=a_PC\a。
      完成后,以前安装的老用户,就能实现正常升级使用了。

你可能感兴趣的:(C#,ClickOne)