【问题标题】:error msb3325 cannot import key file错误 msb3325 无法导入密钥文件
【发布时间】:2013-02-12 07:47:22
【问题描述】:

我最近克隆了一台构建机器,在域上重命名了机器,并将机器从 SATA 驱动器移到了 SSD 驱动器。

我正在尝试为 SVN 中的新分支设置新版本。 该应用程序是 Visual Studio 2010 C# 和 VB.NET 代码和 VB6 代码的组合

当第一个项目尝试从命令行编译时,它无法编译并出现以下错误: “错误 MSB3325:无法导入以下密钥文件:“MyFile1.pfx”。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书或使用以下密钥容器将证书手动安装到强名称 CSP名称:VS_KEY_##########"

现在我可以打开 Visual Studio 2012 IDE 并成功构建项目,无论是发布模式还是调试模式。以任何顺序。

我试图解决的问题:

  1. 我已打开 proj 文件并选择了属性、签名,并尝试再次选择“MyFile1.pfx”文件。
  2. 我已尝试再次签署 MyFile1.pfx 文件。
  3. 我已将 Visual Studio 2012 项目保持打开状态,并打开了一个命令窗口。我试过'sn -i xxxxx.pfx VS_xxxxxxx",提示时输入密码
  4. 我已尝试手动编辑 .*proj 文件并删除对 MyFile1.pfx 文件的引用并重新构建项目,然后再次添加“MyFile1.pfx”文件。

在上述每种情况下,命令行构建都会失败,而 Visual Studio 构建会成功。

我的命令行构建是我们使用构建的解决方案文件并调用 devenv.com 来构建解决方案。

我很困惑为什么 IDE 构建有效而命令行无效,我猜这与从 .com 和 exe 构建有关。

除了为这个分支构建从头开始构建新的构建机器之外,我还能做些什么吗?

谢谢。

【问题讨论】:

  • 我想澄清一下,如果我删除了数字签名标志,那么构建确实可以成功完成,但是,数字签名是可取的。 :D
  • 好的,我找到了解决方案(但我还不能发布)。这很奇怪,但却是真实的。它处理所有事情的巡航控制服务。 如果其他人遇到类似问题,请检查 Cruise Control 的服务属性。单击登录选项卡 检查“此帐户”设置(如果已设置)。确保第一次运行的设置至少是当前用户。我的设置是为本地管理员帐户设置的,在设置机器时我没有以本地管理员身份登录。希望这可以帮助任何其他试图追查流氓文件签名问题的人。丹
  • Cannot import the keyfile 'blah.pfx' - error 'The keyfile may be password protected' 的可能重复项-尽管我看到您尝试了接受的答案。但是那里还有很多其他的东西,所以在那里给出你的答案作为替代答案是有意义的。
  • 您可以包含对stackoverflow.com/questions/2815366/…的引用

标签: c# visual-studio-2010 build cruisecontrol.net


【解决方案1】:

好的,我找到了解决方案。

这很奇怪,但却是真实的。它处理所有事情的巡航控制服务。如果其他人遇到类似问题,请检查 Cruise Control 的服务属性。

  1. 打开 Services.msc
  2. 点击登录标签
  3. 检查“此帐户”设置(如果已设置)。确保至少第一次运行的设置 是当前用户。

我的设置是为本地管理员帐户设置的,我在设置机器时没有以本地管理员身份登录。希望这可以帮助任何其他试图追查流氓文件签名问题的人。

丹——

【讨论】:

  • 无论您使用什么系统来管理您的构建,这种情况都适用。我最近设置了一个 teamcity 构建系统并遇到了同样的问题。问题是构建在 NT AUTHORITY/System 下使用我的默认设置运行。但是,我必须至少在当前用户下运行一次才能获得注册密钥。
猜你喜欢
  • 2019-12-19
  • 1970-01-01
  • 2018-10-08
  • 2017-03-23
  • 2013-02-23
  • 2011-02-18
  • 1970-01-01
  • 1970-01-01
  • 2015-07-21
相关资源
最近更新 更多