[在决定使用ClickOnce发布你的软件前,应该知道的一些事情(一些常见问题解决方法)] (http://blog.csdn.net/sgear/article/details/6458581) 转
vs2005自动创建的.pfx数字证书默认有效期只有一年,并且“颁发者”、“颁发给”均为当前机器名和当前登陆用户名的组合,使用起来并不方便。所以我们有时需要自己创建.pfx数字证书。
打开Microsoft .NET Framework 的SDK命令提示,按以下步骤操作:
其实是用系统的自动命令提示符操作。
1、创建一个自我签署的X.509证书(.cer)和一个.pvk私钥文件,用到makecert工具,命令如下:
makecert -r -n “CN= cncxz ” -b 01/01/2005 -e 01/01/2018 -sv myselfName.pvk myselfName.cer
按提示设置私钥密码(也可以不使用密码)即可在当前目录生成相关文件
2、利用X.509证书(.cer)创建发行者证书 (.spc),用到cert2spc工具,命令如下:
cert2spc myselfName.cer myselfName.spc
3、从.pvk和.spc格式转换成.pfx格式,用到pvkimprt工具,命令如下:
pvkimprt -pfx myselfName.spc myselfName.pvk
按提示操作可导出.pfx证书,若第1步设置了私钥密码,此处需要输入验证
4、在vs项目的ClickOnce清单签名的证书设置处点击“从文件选择”浏览定位到第3步导出的.pfx证书,此处需要验证第3步中设置的证书私钥密码
注意上面每一步都是坑,我总结自己遇到的问题,避免遗忘
第一步
makecert 会提示不是内部或外部命令。。。。
这个时候去网上找一堆安装包都是没法用,最后直接下载一个makecert.exe解决
第二步
有cert2spc.exe即可,这边很快通过
第三步
pvkimprt又是坑,官网下载的是exe是压缩包,解压后的exe是安装包,必须用安装目录下的pvkimprt.exe才能用。
自己经验问题,深深的坑自己一把。
所需要的工具我都上传了,需要的同学可以下载工具包
发布过程中有可能出现的错误
提示Signtool不存
提示Signtool requires CAPICOM version 2.1.0.1 or higher
这时安装capicom_dc_sdk.msi。找到安装目录,复制capicom.dll粘贴到系统盘-windows-system32下
开始-运行,输入regsvr32 capicom.dll
注意如果是64位系统应该是复制到C:\Windows\SysWOW64目录