我的机器上有同一个项目的 2 个不同版本。一个来自代码主干,另一个来自代码分支。这些项目使用 .pfx 密钥来启用强命名。当我第一次尝试编译项目的主干版本时,我收到以下错误:
无法导入以下密钥文件:sgKey.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书或手动将证书安装到具有以下密钥容器名称的强名称 CSP:VS_KEY_45891C38BC1BB345
为了解决这个问题,我使用 sn.exe 和以下命令:
sn -i sg Key.pfx VS_KEY_45891C38BC1BB345
这解决了主干项目的问题,然后愉快地构建。
但是,当我尝试构建项目的分支版本时,我收到相同的初始错误(具有相同的密钥容器名称),并且当我尝试使用 sn.exe 安装证书时(不足为奇)给出以下错误:
安装密钥对失败——对象已存在
这是有道理的,因为我在 sn 命令上使用了相同的infile和容器,但我想了解的是:
- 如果此对象已经存在,为什么项目无法构建,因为它似乎已经安装了证书。
- 我如何解决这个问题(例如,我可以卸载然后重新安装吗?如果可以,如何解决?)