首页 文章

在MSBuild,Team Build和TFS中使用PFX文件对程序集进行签名

提问于
浏览
20

TFS 2010上尝试使用Team BuildMSBuild)构建项目时出现此错误:


C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(1970):无法导入以下密钥文件:CCC.pfx . 密钥文件可能受密码保护 . 要更正此问题,请尝试再次导入证书或使用以下密钥容器名称手动将证书安装到强名称CSP:VS_KEY_C00C673BBB353901 C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(1970 ):导入密钥文件“CCC.pfx”已取消 .


它在Visual Studio 2010中构建正常 . 程序集使用PFX文件进行签名 . 通常在Visual Studio中,我们会在第一次构建时提示输入密码,但之后再也不会...

我试过跑:

sn -i companyname.pfx VS_KEY_3E185446540E7F7A

与Stack Overflow问题Cannot import the keyfile 'blah.pfx' - error 'The keyfile may be password protected'中建议的其他回复一样 . 我已尝试按Stack Overflow问题Using MSBuild to sign ClickOnce or assembly results in error MSB3321中的建议导入个人证书存储区 . 但一切都无济于事,仍然是同样的错误 .

我该怎么做?我是否必须以某种方式将证书添加到构建服务运行的Windows帐户或类似的东西?

或者,如何在Team Build中完成构建而不使用签名?我只是想检查它编译并运行单元测试 . 我不需要签名 .

6 回答

  • 0

    最终为我修复的是制作TFS Build服务在本地计算机上运行管理员的帐户 .

    不知道我之前尝试过的其他任何东西是否也需要完成以使其正常工作 . 但在它成为管理员之前,它在成为管理员后才起作用 .

  • 8

    我得到了同样的错误,并在阅读了你的“管理员”评论后 - 我刚刚运行VS命令提示符作为管理员,它现在工作正常 .

  • 9

    您需要根据您的具体情况调整this answer . 就像是:

    sn -i companyname.pfx VS_KEY_C00C673BBB353901
    
  • 5

    我所做的不是那么优雅,而是有效:以在构建机器上运行msbuild的用户身份登录,手动调用msbuild,然后在提示时输入密码 . 它现在将保存在该用户的证书存储中,现在构建可以无人值守运行 .

  • 1

    我遇到过类似的问题

    Scenario 1: 在本地系统中构建项目时

    在我的情况下,一旦我从TFS下载项目并构建它,我就收到了清单签名错误 .

    为了避免这个问题,我右键单击 project ==> Properties ==> Signing then unchecked "Sign the ClickOnce Manifests"

    要么

    您可以单击 Select from store 按钮,然后从打开的对话框中选择您的登录ID .

    要么

    您可以手动安装PFX文件,然后单击“更多选项”按钮以安装这些证书 .

    Scenario 2:- 构建期间的清单错误

    这里解决这个错误我首先点击 Select from store 按钮并从对话框中选择我的登录ID . 然后我先在TFS中提交该项目,然后运行构建 .

  • 0

    我有以下设置:

    <PropertyGroup>
      <SignAssembly>false</SignAssembly>
      <AssemblyOriginatorKeyFile>MyKey.pfx</AssemblyOriginatorKeyFile>
    </PropertyGroup>
    

    程序集签名已关闭,但 AssemblyOriginatorKeyFile 在清单签名期间导致错误 . 删除 AssemblyOriginatorKeyFile 以修复它 .

相关问题