MSBuild 无法使用临时密钥签署 ClickOnce 清单(错误 MSB3326 和 MSB3321)

2024-01-07

我正在尝试构建 ClickOnceWindows 窗体 http://en.wikipedia.org/wiki/Windows_FormsWindows Server 计算机上的项目 (.NET 3.5 / Visual Studio 2010)。(为了使构建过程自动化Hudson http://en.wikipedia.org/wiki/Hudson_%28software%29 CI http://en.wikipedia.org/wiki/Continuous_integration.)

为了签署 ClickOnce 清单,我在 Visual Studio 中创建了一个临时密钥,temp.pfx。我可以在我的工作站上从 Visual Studio 成功构建和部署项目。但跑步时MSBuild http://en.wikipedia.org/wiki/MSBuild在服务器上我收到以下错误消息:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1970,9): 错误 MSB3326: 无法导入以下密钥文件: 。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书或将证书手动导入到当前用户的个人证书存储中。 [C:.hudson\jobs[...].csproj]

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1970,9):错误 MSB3321:导入密钥文件“temp.pfx”已取消。 [C:.hudson\jobs[...].csproj]

我尝试了以下所有问题和答案,但没有运气:

  • 堆栈溢出问题无法导入密钥文件“blah.pfx”-错误“密钥文件可能受密码保护” https://stackoverflow.com/questions/2815366

    => 就我而言,错误消息并不指示证书存储的名称,而是显示“当前用户的个人证书存储”。

    => 即使在尝试使用“个人”作为容器名称的接受答案时(sn -i temp.pfx personal),它无法解析密钥:

    无法解析 ALiS_TemporaryKey.pfx 中的 PKCS#12 blob — 内部错误 发生了。

  • 堆栈溢出问题使用 MSBuild 签署 ClickOnce 或程序集会导致错误 MSB3321 https://stackoverflow.com/questions/885484

    => 我尝试了接受的答案,但无法导入密钥文件,因为“用户配置文件无法访问,或者您正在导入的私钥可能需要系统上未安装的加密服务提供程序”

    => 如果我尝试通过在 Windows 资源管理器中双击文件来导入该文件,也会发生同样的情况(RobinDotNet 的建议)

  • 堆栈溢出问题在 MSBuild、Team Build 和 TFS 中使用 PFX 文件对程序集进行签名 https://stackoverflow.com/questions/4025316

    =>该问题的OP对上述两个答案也没有成功,但不幸的是,即使他得到的答案也无法帮助我:

    以在生成计算机上运行 MSBuild 的用户身份登录,手动调用 MSBuild,然后在出现提示时输入密码。

    => 我登录并运行msbuild myproject.sln但它甚至不会提示我输入密码。

    最终为我解决的问题是让 TFS Build 服务在本地计算机上以管理员身份运行的帐户。

    => 运行 Hudson 的帐户(更准确地说:Tomcat http://en.wikipedia.org/wiki/Apache_Tomcat) 已经is本地管理员。我什至尝试从“以管理员身份运行”命令行运行 MSBuild,但仍然会收到相同的错误消息。


Update:我尝试在同一服务器上的 Visual Studio 中打开解决方案并构建它。我犯了同样的错误。当我尝试在项目属性的“签名”选项卡中重新导入 PFX 文件时,它告诉我“密码无效”。如果我尝试在工作站上的 Visual Studio 中的完全相同的解决方案中导入完全相同的文件并提供完全相同的密码,则它会被接受。

更新2:如果我使用 Visual Studio 2008 生成的旧临时密钥,它可以成功导入到我们服务器的证书存储中;无法导入我使用 Visual Studio 2010 新创建的任何临时密钥。

更新3:我能够在服务器上的 Visual Studio 中创建一个新的“临时密钥”,并在服务器和我的工作站上使用它来签署 ClickOnce 清单。我只是无法对此做出合理的解释 - 两台计算机都是 64 位,并且我在两台计算机上都使用 Visual Studio 2010。两者都安装了 v3.5 和 v4 (4.0.30319) .NET 框架。我的工作站是Windows 7 Professional,服务器是Windows Server 2008 http://en.wikipedia.org/wiki/Windows_Server_2008R2 标准。


将 PFX 文件复制到您正在执行构建的计算机上。双击它,并将其安装在计算机上的证书管理器中。确保您登录到用于进行构建的帐户。

其他建议/问题:您的计算机上安装了正确版本的 .NET 吗?您是否有权写入该计算机上的证书存储?

如果您打开 Visual Studio 项目,转到项目属性并尝试创建新证书,它是否有效?它应该创建一个 PFX 文件并将其添加到项目中。您可以在证书存储区(菜单“开始”/certmgr.msc)中看到它吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MSBuild 无法使用临时密钥签署 ClickOnce 清单(错误 MSB3326 和 MSB3321) 的相关文章

随机推荐

  • 循环使用translate3d制作的轮播

    我有一个带有拖动选项的轮播translate3d 考虑到使用translate3d为了转到下一张幻灯片 我最终翻译到了轮播的末尾 你能帮我找到解决方案吗 下一张幻灯片逻辑 goNext this carousel style transfo
  • 如何访问隐藏在 DS.PromiseArray 中的数组数据

    这是以下内容的后续内容 访问 ember js 中的另一个模型数据 https stackoverflow com questions 19386351 accessing another models data in ember js 我
  • 分别了解 offsetWidth、clientWidth、scrollWidth 和 -Height

    StackOverflow 上有几个关于offsetWidth clientWidth scrollWidth and Height 分别 但没有人给出这些值的全面解释 此外 网络上有多个来源提供了令人困惑或不正确的信息 您能否给出完整的解
  • 适合新手的 Apache Shiro 和 Java 安全性

    我对 Java 的安全模型几乎一无所知 包括 XML 配置 策略设置 任何安全框架组件 工具 例如密钥库等 以及介于两者之间的所有内容 虽然我明白最终会变成基本的对于我来说 卷起袖子深入学习 Java 安全性 我想知道使用 Apache S
  • 在 ConEmu 中启动或新选项卡时运行 autostart_console.bat?

    我在 Windows 8 Pro 上使用 ConEmu 强大的 cmd 在启动 ConEmu 或打开新选项卡时 如何 在哪里设置 conemu 运行 autostart console bat 谢谢 大多数情况下你需要使用以下命令Comma
  • 多通道图像中的 calcCovarMatrix 和未解决的断言错误

    我尝试从存储在 cv Mat 中的图像获取协方差矩阵 我需要它来计算马哈拉诺比斯距离并尝试进行一些颜色分割 这是我的代码 Mat covar selection meanBGR selection src roi calcCovarMatr
  • 为什么我在使用 Fabric python 库时收到低级套接字错误?

    当我运行命令时 fab H localhost host type 我收到以下错误 localhost Executing task host type localhost run uname s Fatal error Low level
  • 可滚动文本块大小恰好为 2 行高

    我需要显示文本 最多 2 行 没有可见的垂直滚动 然后在大于 2 行时显示滚动
  • ddply 中抛出的错误导致 R 崩溃

    我遇到了一个问题 当提供的函数抛出错误时 plyr 始终崩溃 gt require plyr Loading required package plyr Warning message package plyr was built unde
  • 为新项目选择“更好”或更熟悉的技术?

    我希望开始一个全新的项目 作为我的第一个独立可销售项目 我已经考虑了一段时间了 从广义上讲 它是一个基于 Web 的服务应用程序 而我的第一选择 服务器语言非常简单 我过去在 Java Web 应用程序上工作 对 Java 非常了解 然而
  • 使用 Jquery $.get() 逐行检索文本文件

    是否可以逐行检索txt文件内容 现在我正在使用这段代码 var file http plapla com pla txt function getFile get file function txt save txt responseTex
  • geom_wordcloud :这是一个白日梦吗

    我处理一些跨各种分组变量的文本数据 我正在考虑创建一种使用 Ian Fellows 制作多面文字云图的方法wordcloud包裹 我喜欢这种方式ggplot2方面的社会变量 我正在决定如何解决这个问题 多面词云图 是否可以使用 Fellow
  • 为什么使用隐藏字段?

    我经常看到 Web 应用程序中使用了很多隐藏字段 我所编写的代码是为了使用大量隐藏字段以及来回发送给它们的可见字段的数据值而编写的 虽然我不明白为什么使用隐藏字段 我几乎总能想出在不使用隐藏字段的情况下解决相同问题的方法 隐藏字段如何帮助设
  • Java 进程挂在 IOUtils 上。疑似死锁

    我有一个 java 进程挂在调用中IOUtils toString使用以下代码 String html try html IOUtils toString someUrl openStream utf 8 process hangs on
  • Vue.js 动态类名?

    我需要根据评论等级进行颜色降级 我希望在 Vue js 中完成一些事情 如下所示 div class review 在我的方法中我有这样的东西 reviewColor return green 不幸的是 这并没有为我提供 green 班级
  • 将解决方案中的所有项目重新定位到 .NET 4.5.2

    我在 Visual Studio 2012 中有一个解决方案 其中包含 170 个 C 项目 我需要将所有项目从 NET Framework 4 0 重新定位到 4 5 2 我更喜欢让 Visual Studio 通过进入每个项目的属性 更
  • 将 JSON 日期转换为 MM/DD/YYYY 格式?

    我的客户收到一个包含多列的电子表格 其中一列是 日期 只有日期被格式化为Date 1292291582263 0700 看起来是一个 JSON 日期 我需要在此电子表格代码 VBA 的其他位置转换并使用 MM DD YYYY 格式的 JSO
  • Bootstrap 3 - 带侧边栏的 Scrollspy

    我正在使用 Bootstrap 3 我想重新创建与侧边栏相同的功能Bootstrap 站点上的文档 http getbootstrap com javascript 下面是我的代码 它也在这里 http bootply com 82119
  • 使用带有信任证书的 ClickOnce 进行 WPF 应用程序部署

    我已使用测试证书将 WPF 应用程序部署到生产环境 现在 我必须更改测试证书并购买新证书 我浏览了 MSDN 网站 但无法得出结论该怎么办 所以 我需要澄清以下内容 在哪里购买这些证书文件以及它是什么类型的证书 我们必须在客户端系统上安装这
  • MSBuild 无法使用临时密钥签署 ClickOnce 清单(错误 MSB3326 和 MSB3321)

    我正在尝试构建 ClickOnceWindows 窗体 http en wikipedia org wiki Windows FormsWindows Server 计算机上的项目 NET 3 5 Visual Studio 2010 为了