我们刚刚将Visual Studio 2008项目升级到Visual Studio 2010。我们所有的程序集都使用Verisign代码签名证书进行强签名。自从升级以来,我们不断得到以下错误:

无法导入以下密钥文件:companyname.pfx。密钥文件可能有密码保护。若要纠正此问题,请尝试重新导入证书或使用以下密钥容器名称手动将证书安装到强名称CSP: VS_KEY_3E185446540E7F7A

这发生在一些开发人员机器上,而不是其他机器上。一些用来修复这个问题的方法有时有效,包括:

从Windows资源管理器重新安装密钥文件(右键单击PFX文件并单击安装) 第一次在新机器上安装Visual Studio 2010会在您第一次打开项目时提示您输入密码,然后它就可以工作了。在从Visual Studio 2008升级的机器上,没有此选项。

我已经尝试使用SN.EXE实用工具(强名称工具)向强名称CSP注册密钥,正如错误消息所建议的那样,但每当我使用Visual Studio 2010附带的版本运行带有任何选项的工具时,SN.EXE只是列出了它的命令行参数,而不是做任何事情。无论我提供什么参数,都会发生这种情况。

为什么会发生这种情况,有什么明确的步骤来解决它?我打算放弃ClickOnce安装和微软代码签名。


当前回答

我说得太早了!重建带来了错误…

我发现这个工作-右键单击解决方案资源管理器并将其排除在项目之外。单击显示所有文件,右键单击,现在再次将其包含在项目中。现在撤销挂起的更改…

出于某种原因,这为我整理了它,相对来说没有什么痛苦!

其他回答

我发现在某些情况下,您应该尝试在安装之前删除此密钥。所以,请做到以下几点:

sn -d VS_XXXX Sn -i mykey。可以VS_XXX

在我的场景中,构建服务使用的用户帐户与我使用sn.exe导入密钥的用户帐户不同。

在将帐户更改为管理员帐户后,一切都正常工作。

为了在Visual Studio 2012中解决这个问题,我右键单击项目,属性->“signing”,然后取消选中“Sign the ClickOnce manifest”。

在Visual Studio 2019和。net 5项目中,这个问题的解决方案是将.pfx文件从我的解决方案中排除,它立即起作用。

谁在使用GitLab运行程序:

请确保使用一个可以登录到。/gitlab-runner.exe install——user "的帐户运行该运行程序。“ENTER-YOUR-PASSWORD”(我必须先停止并卸载) 按照本指南授予构建用户作为服务登录的权限 使用这样的构建用户登录 请使用其他答案中建议的命令:sn -i certificate。可以VS_KEY_C * * * 6

容器名称建议在GitLab上失败的作业输出中(msbuild输出)