2013-03-08 43 views
25

我在stackoverflow上彻底研究了这个问题,并且我看到了很多答案,但是他们都没有为我们工作过。我们最近从comodo购买了一个代码签名证书,我们将用它来签署我们的c#WPF .net4应用程序。
我们遵循following URL导入pfx时无法导入以下密钥文件错误

的指示,然后在visual studio中的'项目属性 - >唱歌 - >签署程序集'中导入证书。然后我们尝试构建该项目并获取以下错误:

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

我们发现在互联网上众多的解决方案,并曾尝试以下:

  • 点击更改密码,并在所有3个地方使用相同的密码
  • SN -i [魔岛] .PFX VS_KEY_xxxxxxxxxxxxx
  • 试图将其转换为无密码的SNK文件,并用它来代替.PFX
  • 尝试运行Visual Studio为管理和进口关键
  • 尝试创建非常简单的准系统公关oject并与
  • 尝试Visual Studio 2010的签约以及2012
  • 我们尝试添加下列到装配[大会:AssemblyKeyFile中(“路径密钥文件”)
  • 添加的事件在postbuild“C: \ Program Files \ x86 \ Microsoft SDK \ Windows \ v7.0A \ Bin \ signtool.exe“sign/f”$(ProjectDir)[keyfile] .pfx“/ p [thepassword]/v”$(ProjectDir)obj \发布\ $(TargetFileName)”
  • 添加在.csproj的文件中的部分:

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

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

+0

有一些变通,http://connect.microsoft.com/VisualStudio/feedback/details/524792/ import-key-file-was-canceled – Raj 2013-03-08 09:28:15

+0

嘿Raj。感谢您的回复,我尝试了所有这些解决方法,但都不成功。 – hobeau 2013-03-08 14:57:50

+0

当您尝试“sn -i [comodo] .pfx VS_KEY_xxxxxxxxxxxxx”方法时,您是否收到帮助信息?我做了,但没有成功,但是如果我以管理员身份运行“开发人员命令提示符”,它会要求我输入密码并取得成功。 – VoteCoffee 2017-09-07 12:56:30

回答

11

我已经了解到Visual Studio似乎并没有很好地处理下级证书。
我在多台机器上(不同的OS/VS组合)尝试了几个证书,获得了相同的结果。
我终于发现这是一个解决办法:

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

+0

这是唯一一致的工作方式,如下所示:http://social.msdn.microsoft.com/Forums/windows/en-US/b33fc15d-d125-44b1-846a-7f461f3b1504/sign-assembly-with-pfx -certificate?forum = winformssetup – 2014-02-20 19:53:19

+0

谢谢你。我的情况更加广泛,与第二流的评分结合在一起:http://stackoverflow.com/questions/1351830/what-does-exited-with-code-9009-mean-during-this-build/ 9990227#9990227。我添加了以下内容作为构建后事件:'call“$(DevEnvDir).. \ Tools \ vsvars32.bat”'“和'signtool sign/f”$(SolutionDir)keyfile.pfx“/ p password/v”$ (ProjectDir)$(OutDir)$(TargetFileName)'。我的密钥文件位于一个解决方案的基础上,由多个项目引用。根据当前配置,'OutDir'宏更改为'debug'或'release'文件夹 – ps2goat 2014-09-02 07:56:42

+1

正如其他人所说,我能够正常安装Authenticode证书,出于某种原因,Visual Studio无法在项目属性选项卡中使用链接证书。 – ps2goat 2014-09-02 08:00:31

9

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

+0

这就像在win8.2上使用vs2013的魅力一样 – kpierce8 2014-06-24 19:41:37

13

您只需打开 “项目>物业>签署”,取消选中 “签署的ClickOnce体现” 复选框。

3

我能想到的最好的办法是去项目 - >属性 - >选择强名称密钥文件下拉菜单,选择“新建” - >创建的键,然后指向顶部证书区域 - >单击从文件中选择并选择您创建的新密钥 - >生成解决方案 - >发布。

1

另一种“为我工作” ......

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

0

对我下面的工作, 首先通过双击它安装证书。然后,

项目属性 - >签名 - >如果'签署ClickOnce清单'被选中 - >点击'从文件中选择'并选择.pfx文件,它应该显示所有证书有效的详细信息,例如Issued to,Issued通过,用途等

0

我有同样的问题。我正在用大量计算机上的拇指驱动器构建应用程序,并相信这是原因。

我发现与 “SN -i [魔岛] .PFX VS_KEY_xxxxxxxxxxxxx” 方法的成功。 我做了以下步骤:

  1. 运行“开发人员命令提示符”以管理员身份(在开始 - >所有程序 - >视觉工作室 - 找到>工具)
  2. 导航到你的关键目录(对我来说,这是我的项目的根目录下,而不是解决方案目录)
  3. 执行 “SN -i mykey.pfx VS_KEY_xxxxxxxxxxxxx”(的myKey。PFX和VS_KEY_xxxxxxxxxxxxx都在生成错误信息中找到)
  4. 如果需要

当我尝试这样做,但不运行“开发人员命令提示符”以管理员身份输入密码,我跑的时候得到帮助显示文本“ sn -i mykey.pfx VS_KEY_xxxxxxxxxxxxx“,它不起作用。诀窍是确保我以管理员身份运行开发提示。

对于情况下,我使用VS社区2013.5,微软Windows 7 64位专业版和.NET框架4.7

相关问题