在我的机器上,我有两个不同版本的同一个项目。一个来自代码主干,另一个来自代码分支。这些项目使用.pfx键来启用强命名。当我第一次尝试编译该项目的主干版本时,我得到了以下错误:
无法导入以下密钥文件: sgKey.pfx。密钥文件可能受到密码保护。若要更正此问题,请再次导入证书,或手动将证书安装到强名称CSP,其密钥容器名称如下: VS_KEY_45891C38BC1BB345
为了解决这个问题,我将sn.exe与以下命令结合使用:
sn -i sg Key.pfx VS_KEY_45891C38BC1BB345
这解决了主干项目的问题,该主干项目随后愉快地构建。
但是,当我试图构建项目的分支版本时,我会收到相同的初始错误(具有相同的密钥容器名称),并且当我尝试使用sn.exe安装证书时(不足为奇)会出现以下错误:
未能安装密钥对-对象已经存在
这是有意义的,因为我在sn命令中使用了相同的infile和容器,但是我想要理解的是:
发布于 2014-05-20 08:17:11
我设法解决了我的问题,但没有充分了解原因。我找到了一篇关于这里类似问题的帖子,但并不完全适合我的情况,因为我只作为一个用户登录过我的机器。
文章展示了如何删除容器,但我也做不到,因为它说容器不存在。它所做的是提示我以管理员的身份运行命令提示符,我以前没有这样做过。这使我可以卸载和重新安装证书,并且两个版本的项目现在都成功构建。
我的假设是,该证书最初(由我)安装在与我第二次尝试安装的证书不同的用户下,但我不知道为什么会这样,因为我只作为一个用户登录到机器上。对我来说这仍然是个谜。
摘要:
发布于 2017-11-28 19:39:52
在Windows 10上进行“刷新”之后,我们也遇到了同样的问题。
这就像刷新时将旧容器存储在某个隐藏区域,在那里它们不能被删除(但也会干扰相同容器的添加)。从当前用户的角度来看,更改为基于用户的方法允许一个干净的板子。注意,如果同一台计算机上有多个用户,他们可能需要注册证书。
https://stackoverflow.com/questions/23754044
复制相似问题