导入pfx时无法导入以下密钥文件错误

时间:2013-03-08 00:12:13

标签: code-signing pfx

我在stackoverflow上彻底研究了这个问题,我看到了很多答案,但它们都没有为我们工作过。我们最近从comodo购买了一个代码签名证书,我们将用它来签署我们的c#WPF .net4应用程序。
我们已按照following URL上的说明进行操作

然后在视觉工作室中导入证书,在'项目属性 - >唱歌 - >签署组件'。然后我们尝试构建项目并得到以下错误:

无法导入以下密钥文件:comodo.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书,手动将证书安装到具有以下密钥容器名称的强名称CSP:VS_KEY_xxxxxxxxxxxxxxx。

我们在互联网上找到了许多解决方案,并尝试了以下方法:

  • 点击更改密码并在所有3个地方使用相同的密码
  • sn -i [comodo] .pfx VS_KEY_xxxxxxxxxxxxx
  • 尝试将其转换为无密码的snk文件并使用它而不是.pfx
  • 尝试以管理员身份运行visual studio并导入密钥
  • 尝试创建非常简单的准系统项目并使用
  • 进行签名
  • 尝试使用Visual Studio 2010以及2012
  • 我们尝试将以下内容添加到程序集[assembly:AssemblyKeyFile(“密钥文件的路径”)]
  • 在postbuild中添加了事件“C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin \ signtool.exe”sign / f“$(ProjectDir)[keyfile] .pfx”/ p [thepassword ] / v“$(ProjectDir)obj \ Release \ $(TargetFileName)”
  • 在.csproj文件的一节中添加:

  • 已下载http://visualstudiogallery.msdn.microsoft.com/a83505c6-77b3-44a6-b53b-73d77cba84c8并在错误上点击了“应用修正”

到目前为止我们没有成功。我们可以使用密码导入密钥,因此我们知道密码是正确的。我们也知道这适用于在clickonce发布中签署清单。为了确保我们没有任何其他问题,我们关闭了cilckonce签名并且只是试图签署大会。

8 个答案:

答案 0 :(得分:14)

您只需打开“ 项目> 属性> 签名 ”并取消选中“签名” ClickOnce显示“复选框。

答案 1 :(得分:11)

我了解到Visual Studio似乎没有很好地处理从属证书。
我在多台机器上尝试了多个证书(不同的OS / VS组合),结果相同。
我终于找到了这是一个解决方法:

Visual Studio的问题似乎是它不喜欢证书链接。这可以通过导入/导出证书而不进行链接来解决。 using the certutil and export with the AT_SIGNATURE解决了下一个问题。我能够将它导入VS并构建,但它似乎没有签署程序集。

答案 2 :(得分:9)

我得到了类似的错误。通过从Windows资源管理器中的上下文菜单中选择安装PFX 来解决此问题。

答案 3 :(得分:3)

我能想到的最佳解决方案是去Project - >属性 - >选择强名称密钥文件下拉列表,然后选择“新建” - >创建密钥,然后转到顶部的证书部分 - >单击从文件中选择,然后选择您创建的新密钥 - >构建解决方案 - >发布。

答案 4 :(得分:1)

另一个'为我工作' ...

在Windows资源管理器中右键单击PFX,选择安装PFX'并在向导中提供了密码。然后在VS的项目属性中,在'签名'选择了更改密码'并重新输入密码。在此之前,只有以管理员身份运行VS才能正常工作。

答案 5 :(得分:0)

对于我的工作, 首先双击安装证书。然后,

项目属性 - >签名 - >如果'签署ClickOnce清单'检查 - >点击'从文件中选择'并选择.pfx文件,它应显示所有证书有效的详细信息,如发布,发布,预期目的等。

答案 6 :(得分:0)

我有同样的问题。我正在许多计算机上用拇指驱动器构建应用程序,并认为这是原因。

我找到了成功的" sn -i [comodo] .pfx VS_KEY_xxxxxxxxxxxxx"方法。 我做了以下步骤:

  1. 运行"开发人员命令提示符"作为管理员(在开始 - >所有程序 - > Visual Studio->工具中找到)
  2. 导航到您的密钥目录(对我而言,这是我的项目目录的根目录,而不是解决方案目录)
  3. 执行" sn -i mykey.pfx VS_KEY_xxxxxxxxxxxxx" (mykey.pfx和VS_KEY_xxxxxxxxxxxxx都在构建错误消息中找到)
  4. 根据需要输入密码
  5. 当我在没有运行" Developer Command Prompt"作为管理员,我在运行时获得帮助显示文字" sn -i mykey.pfx VS_KEY_xxxxxxxxxxxxx"它不起作用。诀窍是确保我以管理员身份运行开发提示。

    对于上下文,我使用的是VS Community 2013.5,Window 7 x64 Professional和.NET Framework 4.7

答案 7 :(得分:0)

  1. 导航到项目属性->签名
  2. 请从下拉列表中选择相应的* .pfx文件。
  3. 输入用于代码签名的先前密码。 (密码:询问已签名程序集并创建了自签名证书和已签名代码的人)
  4. (可选)它将自动将您的证书添加为受信任的证书。它可以 使用管理控制台窗口可以看到(运行MMC命令并添加 证书添加快照以查看证书)

enter image description here