.net - 使用 MSBuild 签署 ClickOnce 或程序集会导致错误 MSB3321

标签 .net msbuild clickonce code-signing

我已在 Visual Studio 2008 中设置了我的简单项目以使用 ClickOnce安装程序。我已指定 ClickOnce list 应由我们公司的 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 文件,也会发生同样的情况。

如何解决这个问题?是否有手动方法在构建机器上存储密码?

最佳答案

您可以将证书导入到构建计算机上的受信任发布者存储中吗? (Internet Explorer > 工具 > 选项 > 内容 > 证书)

我不使用 MSBuild 来创建部署;我用法师。但是,我使用 .pfx 文件将我们的证书导入到我的受信任发布者商店中。为此,我必须输入密码。完成后,当我在 Mage 中保存 list 时,我不再需要提供密码。我只需从我的商店中选择证书即可。

关于.net - 使用 MSBuild 签署 ClickOnce 或程序集会导致错误 MSB3321,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/885484/

相关文章:

.net - Web.config 转换可以与 App.config 文件一起使用吗?

asp.net - 如何通过MsDeploy在部署过程中排除Web.Config

c# - 获取属性类中的类类型

c# - 如何在 ClickOnce 中处理应用程序更新

clickonce - 如何将自定义 URL 协议(protocol)与 ClickOnce 应用程序关联?

c# - 将 TransactionScopeOption.Suppress 与 SQL Server Compact 4 一起使用

C# 不写入设置

.net - 受密码保护的 .NET ClickOnce 部署?

.net - Windows.Forms 等同于 Arrange、Measure 和 DesiredSize?

tfs - 如何获得 .net 标准 2.0 项目以在 TFS2015 上构建