首页 文章

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

提问于
浏览
25

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

然后在“项目属性 - >唱歌 - >签署组件”下在Visual Studio中导入证书 . 然后我们尝试构建项目并获得以下错误:

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

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

  • 单击“更改密码”并在所有3个位置使用相同的密码

  • sn -i [comodo] .pfx VS_KEY_xxxxxxxxxxxxx

  • 尝试将其转换为无密码的snk文件并使用它而不是.pfx

  • 尝试以管理员身份运行visual studio并导入密钥

  • 尝试创建非常简单的准系统项目并使用它进行签名

  • 试过2010年的视觉工作室以及2012年

  • 我们尝试将以下内容添加到程序集[assembly:AssemblyKeyFile("path to key file")]

  • 在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并在错误上单击'Apply Fix'

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

8 回答

  • 3

    您只需打开“ Project > Property > Signing " and uncheck the "签署ClickOnce清单”复选框即可 .

  • 1

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

    • 用组件签名

    signtool sign /f "[path to pfx]" /p [password] /v "[path to assembly]"

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

  • 0

    我得到了类似的错误 . 通过从Windows资源管理器中的上下文菜单中选择 Install PFX 解决了这个问题 .

  • 0

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

  • 14

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

    在Windows资源管理器中右键单击PFX,选择“安装PFX”并在向导中提供密码 . 然后在VS的项目属性中,在“签名”下选择“更改密码”并重新输入密码 . 在此之前,仅以管理员身份运行VS将起作用 .

  • 11

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

    项目属性 - >签名 - >如果选中“签署ClickOnce清单” - >单击“从文件中选择”并选择.pfx文件,它应显示所有证书有效的详细信息,如颁发给,颁发者,预期目的等 .

  • 0

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

    我发现了“sn -i [comodo] .pfx VS_KEY_xxxxxxxxxxxxx”方法的成功 . 我做了以下步骤:

    • 以管理员身份运行"Developer Command Prompt"(在开始 - >所有程序 - > Visual Studio->工具中找到)

    • 导航到您的密钥目录(对我来说这是我的项目目录的根目录,而不是解决方案目录)

    • 执行"sn -i mykey.pfx VS_KEY_xxxxxxxxxxxxx"(mykey.pfx和VS_KEY_xxxxxxxxxxxxx都在构建错误消息中找到)

    • 如果需要,输入密码

    当我在没有以管理员身份运行“Developer Command Prompt”的情况下尝试此操作时,我在运行“sn -i mykey.pfx VS_KEY_xxxxxxxxxxxxx”时获得帮助显示文本,但它不起作用 . 诀窍是确保我以管理员身份运行开发提示 .

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

  • 9
    • 导航到项目属性 - >签名

    • 请从下拉列表中选择相应的* .pfx文件 .

    • 输入用于代码签名的先前密码 . (密码:询问签署了程序集的人并创建了自签名证书和代码签名)

    • (可选)它会自动将您的证书添加为受信任的证书 . 它可以使用管理控制台窗口看到(运行MMC命令并添加证书add-snaps以查看证书)

    enter image description here

相关问题