无法导入密钥文件'blah.pfx'-错误'密钥文件可能受密码保护'

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


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


这发生在某些开发人员机器上,而不是其他人。有时可以解决该问题的一些方法包括:


从Windows资源管理器中重新安装密钥文件(右键单击PFX文件,然后单击“安装”)

第一次在全新计算机上安装Visual Studio 2010会在您第一次打开项目时提示您输入密码,然后它会起作用。在从Visual Studio 2008升级的计算机上,没有此选项。

我曾尝试使用SN.EXE实用程序(强名称工具)按照错误消息的提示向强名称CSP注册密钥,但是每当我使用Visual Studio 2010 SN附带的版本运行带有任何选项的工具时, .EXE仅列出其命令行参数,而不执行任何操作。无论我提供什么参数,都会发生这种情况。


为什么会发生这种情况?有哪些明确的步骤可以解决此问题?我将放弃ClickOnce的安装和Microsoft代码签名。


红糖糍粑
浏览 1314回答 3
3回答

三国纷争

我也遇到了这个问题。我能够通过运行来解决问题sn -i <KeyFile> <ContainerName>(将密钥对安装到命名容器中)。sn通常作为Windows SDK的一部分安装。例如C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe。此位置很可能不在标准环境的搜索路径中。但是,Visual Studio安装的“开发人员命令提示符”添加了通常包含正确位置的其他信息。根据您的帖子,看起来像sn -i companyname.pfx VS_KEY_3E185446540E7F7A这必须从PFX文件的位置运行,如果您在VS 2010中加载了解决方案,则只需在解决方案资源管理器中右键单击pfx文件,然后选择“打开命令提示符”,这将在其中启动.net 2010 cmd提示工具。正确的目录。在运行此sn命令之前,我确实通过右键单击pfx并选择install重新安装了pfx,但是该方法不起作用。只是要注意一点,因为这可能是提供解决方案的两者的结合。希望这有助于解决您的问题。

倚天杖

我发现了一个修复程序,可以帮助您在多开发人员环境中成功构建:而不是更改密码(这将导致.pfx更改),而是从组合框中重新选择&nbsp;.pfx文件。然后,这将调用密码对话框。输入密码后,项目将建立成功。每个开发人员都可以在本地计算机上执行此操作,而无需实际修改.pfx文件。我仍然无法在我们的构建服务器计算机上对程序集进行签名。我在那里遇到了相同的错误,但是使用sn.exe -i方法不能解决buildserver的问题。

慕神8447489

我遇到了同样的问题,删除商店后无法正常阅读。我必须执行以下操作。获取OpenSSL的副本。它可用于Windows。或者使用Linux机器,因为他们几乎都拥有它。运行以下命令以导出到密钥文件:openssl pkcs12 -in certfile.pfx -out backupcertfile.keyopenssl pkcs12 -export -out certfiletosignwith.pfx -keysig -in backupcertfile.key然后,在项目属性中,您可以使用PFX文件
打开App,查看更多内容
随时随地看视频慕课网APP