代码之家  ›  专栏  ›  技术社区  ›  Ray

使用msbuild对ClickOnce或程序集进行签名将导致错误MSB3321

  •  6
  • Ray  · 技术社区  · 16 年前

    我在Visual Studio 2008中设置了一个简单的项目来使用 ClickOnce 安装程序。我已经指定了clickOnce清单应该由我们公司的 PFX 文件。当我在Visual Studio中设置它时,它要求输入pfx文件的密码,我很乐意提供该密码。当我在Visual Studio中构建和发布时,一切都可以正常工作。它还可以从 MSBuild 在我的机器上。

    但是,当我尝试在生成计算机上使用msbuild生成它时,会得到以下错误:

    ERROR MSB3321 in 
        C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(1805,7)
        : Importing key file "ourCertificate.pfx" was canceled (sic).
    

    经过一些搜索,我找到了一些信息,说这是因为我没有提供密码。但是我找不到一种方法来提供构建机器上的密码。我还看到了安装Visual Studio的建议,并在Visual Studio中提供一次密码,之后它将在msbuild中工作。但我真的想避免在构建机器上安装Visual Studio。

    我尝试双击pfx文件来导入它,并在被询问时输入密码,但这没有帮助。

    如果我在Visual Studio中选中“对程序集签名”,并提供相同的pfx文件,就会发生同样的事情。

    我如何解决这个问题?是否有在生成计算机上手动存储密码的方法?

    2 回复  |  直到 11 年前
        1
  •  6
  •   codeConcussion    16 年前

    能否将证书导入到生成计算机上受信任的发布者存储区? (Internet Explorer工具选项内容证书)

    我不使用msbuild创建部署;我使用mage。但是,我使用.pfx文件将证书导入我的可信发布者存储区。为了做到这一点,我必须输入密码。完成后,当我在法师中保存清单时,我不再需要提供密码。我可以简单地从我的商店中选择证书。

        2
  •  -1
  •   Peter Mortensen icecrime    11 年前

    约翰·罗宾斯有一篇关于如何包装的博客 SignTool.exe 在里面 MSBuild , Code Signing – It’s Cheaper and Easier than You Thought .