我在 stackoverflow 上彻底研究了这个问题,我看到了很多答案,但没有一个对我们有用。我们最近从 comodo 购买了一个代码签名证书,我们将用它来签署我们的 c# WPF .net4 应用程序。
我们已按照以下 URL上的说明进行操作
然后在“项目属性->唱歌->签署程序集”下将证书导入Visual Studio。然后我们尝试构建项目并得到以下错误:
无法导入以下密钥文件:comodo.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书,手动将证书安装到具有以下密钥容器名称的强名称 CSP:VS_KEY_xxxxxxxxxxxxxxx。
我们在互联网上找到了许多解决方案,并尝试了以下方法:
- 单击更改密码并在所有 3 个位置使用相同的密码
- sn -i [comodo].pfx VS_KEY_xxxxxxxxxxxxx
- 尝试将其转换为无密码 snk 文件并使用它而不是 .pfx
- 尝试以管理员身份运行 Visual Studio 并导入密钥
- 尝试创建非常简单的准系统项目并与之签名
- 尝试了 Visual Studio 2010 和 2012
- 我们尝试将以下内容添加到程序集中 [程序集: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并点击错误的“应用修复”
到目前为止,我们还没有成功。我们可以使用密码很好地导入密钥,这样我们就知道密码是正确的。我们也知道这对于在 clickonce 发布中签署清单非常有效。只是为了确保我们没有任何其他问题,我们关闭了 cilckonce 签名,只是试图签署程序集。