VSTS 构建失败并出现 MSB3325,无法导入 PFX 密钥文件

2023-11-25

我创建了一个构建定义来在 Visualstudio.com 上在线构建桌面应用程序,该应用程序在任务构建解决方案(Visual Studio 构建)中失败,并出现以下错误,

[错误]C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(3156,5): 错误 MSB3325:无法导入以下密钥文件: Sixmod5Certificate.pfx。密钥文件可能受密码保护。到 更正此问题,尝试再次导入证书或手动安装 使用以下密钥向强名称 CSP 发送证书 容器名称:VS_KEY_3B2BCC84AE4E26F1

我遵循指定的解决方案,https://developercommunity.visualstudio.com/content/problem/156086/vsts-build-msb3325-cannot-import-the-following-key.html

然后按照指定,https://stackoverflow.com/a/48698229/3531672我在构建任务之前添加了一个powershell脚本任务,如下,

[CmdletBinding()]
param(  
    [Parameter(Mandatory)][string] $pfxpath,
    [Parameter(Mandatory)][string] $password
)

Add-Type -AssemblyName System.Security
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cert.Import($pfxpath, $password, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]"PersistKeySet")
$store = new-object system.security.cryptography.X509Certificates.X509Store -argumentlist "MY", CurrentUser
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]"ReadWrite")
$store.Add($cert)
$store.Close()

但还没有运气,

有不同的 SO 帖子类似于此指定从管理员用户构建的解决方案,或手动安装 pfx 证书,但由于它们与个人计算机相关,并且我正在尝试在 Visualstudio.com 上配置持续集成,因此它们似乎对我。

请注意,我能够在本地计算机上成功构建。

如果您希望最终再次出现此问题,请按照以下步骤操作,

步骤 1:创建一个新的 VSTO 插件项目(任何 Excel/Word/Powerpoint)。

第 2 步:将其附加到 VSTS。

步骤 3:在应用程序属性的签名选项卡中,不要使用临时证书,而是创建一个新的受密码保护的证书(PFX - 在我的例子中是个人信息交换)并使用它来签署 ClickOnce 清单

STEP 4:尝试在本地机器上构建,将会成功。

STEP 5:推过去并尝试在 VSTS 上构建,您将得到与上面相同的错误。


我从“项目属性 -> 签名”页面取消选中“对程序集进行签名”复选框,一切都非常顺利。构建已通过 VSTS 成功签名。不知怎的,我错过了许多与该问题相关的SO线程中提供的解决方案。

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

VSTS 构建失败并出现 MSB3325,无法导入 PFX 密钥文件 的相关文章

  • TFS Rest API 签入版本控制

    我需要能够从 VSTS 扩展签出 编辑和签入 本地 TFVC TFS 存储库 v2015 3 在文档中https www visualstudio com en us docs integrate api tfvc overview htt
  • 为什么 TFS 构建步骤扩展图标丢失?

    我按照 MS 教程为 TFS 创建了一个新扩展 由于某种原因 当我将图标添加到扩展程序时 我可以在安装扩展程序时在 扩展程序管理器 页面中看到此图标 但是当我选择我的扩展时从构建步骤菜单中图像丢失 在 vss extension json
  • MsBuild 在 Visual Studio Online 上找不到恢复的 NuGet 包

    我尝试构建一个存储在 Visual Studio Online 上的外部 GIT 存储库中的解决方案 它有以下步骤 1 Git 恢复 有效 2 NuGet 恢复 有效 3 构建 不起作用 查看日志时我的第一个猜测是 MsBuild 没有查找
  • MSBuild 命令行 - 添加 dll 引用

    我使用 makefile 来编译我的 C 项目 在这个makefile中 我创建了一个库tools dll 调用csc exe OK 现在 我想在我的项目中使用这个 dll 由于某些原因 我必须使用使用 csproj 文件的 MSBuild
  • TFS 构建 - 部署/包目标未运行

    我们设置了一个 TFS 构建定义 在其中传递以下额外的 MSBuild 参数 p DeployOnBuild true DeployTarget PipelinePreDeployCopyAllFilesToOneFolder Packag
  • 文件夹结构中的链接文件

    在 Visual Studio 中 当我将文件从一个项目链接到下一个项目时 在尝试加载链接的资源时出现以下错误 仅当链接文件位于文件夹内时才会发生这种情况 Error Message pack application projectName
  • Visual Studio Team Services 持续集成:NuGet 恢复任务失败

    我正在使用 Team Services 中的持续集成功能 以前是 Visual Studio Online 我的构建定义针对解决方案 而不是整个解决方案 中的特定项目 即 ClientUI MVC 网站 该解决方案包含三个项目 Client
  • 更改 msbuild.exe 的工作目录

    我正在从批处理文件执行 MSBuild MSBuild 脚本所在的目录与我希望 MSBuild 在运行脚本时考虑工作目录的目录不同 调用MSBuild exe时 如何更改其工作目录 编辑 更多细节假设我有一个位于其他服务器上的 MSBuil
  • Azure Devops Pipeline 环境资源代理安装问题

    我一直在尝试在 azure devops 中向我们的管道添加环境资源 但每次我使用他们提供的 powershell 脚本安装它时 它都会要求我提供标签 如果我不想输入标签 则会出错 如果我选择放入标签 则会出错 无论哪种方式 它每次都会重新
  • MSBuild - 等待 x 秒

    我有一个部署 Web 应用程序的 MSBuild 脚本 它通过将 app offline htm 文件复制到服务器来停止当前的 Web 应用程序 此后 它会删除其他文件 然后将新文件复制到服务器 我需要在复制 app offline htm
  • 如何使用 API 和 C# 将文件从 azure DevOps 服务器下载到指定路径

    我正在尝试使用 API 从 azure Devops 服务器下载文件 API 给出了成功响应 但是没有下载任何文件 如果我们删除格式参数 我们将获得带有文件链接的响应 单击该文件不会下载 示例代码 var personalaccesstok
  • pubxml Web 发布工具事件生命周期

    我正在使用 Visual Studio 2012 中的 Web 发布工具发布到文件系统 我了解到我可以打开 Properties 文件夹中的 pubxml 来执行更高级的操作 我想要做的是在发布任务结束时运行命令行应用程序 我通常会在自定义
  • XAML解析异常

    我有一个简单的 XAML 页面 当它作为 Visual Studio 中任何应用程序的一部分加载时 加载效果良好 但是 当我使用 ClickOnce 部署此应用程序时 出现以下异常 Type System Windows Markup Xa
  • 筛选 NUnit MSBuild 任务的类别?

    我正在设置一个 MSBuild 项目来运行一些 NUnit 测试 使用MSBuild 社区任务项目 http msbuildtasks tigris org 通过这些设置 我将能够运行 NUnit 测试
  • 将 Azure Pipelines 与多目标项目一起使用时出现错误 NETSDK1061

    完整的错误在这里 Error NETSDK1061 The project was restored using Microsoft NETCore App version 1 0 0 but with current settings v
  • WiX Heat:预构建事件在构建服务器上过早触发

    我正在为我的 Visual Studio 解决方案收集一个目录 到目前为止 它在我的本地系统上运行可能是因为项目构建顺序得到了尊重 当我在构建服务器上运行安装程序时 它会找到正确的目录 但在构建安装文件时尚未创建该目录 它抛出一个HEAT5
  • 发布管道中的 Azure DevOps 日志记录命令

    我试图通过在任务中设置一些环境变量来自定义管道版本的输出 我找到了以下链接 然而这似乎不起作用 我所做的只是创建一个具有单个任务 bash 或 PS 的管道 并通过任务的内联版本声明链接中指定的命令 有人已经成功地使这些命令起作用了吗 我做
  • MSBuild 与编译器

    从命令提示符使用 MSBuild 和 C 编译器有什么区别 我想在不使用 Visual Studio 的情况下手动构建我的解决方案 项目 并且我想学习如何使用命令行工具 C 编译器你的意思是csc exe 如果这就是你的意思 那么csc a
  • MSBuild 编译解决方案时找不到 SGen

    我在这里查看了其他几个与 SGen 相关的问题 要么他们的答案不适用 要么他们的答案不能为我解决这个问题 我安装了几个 SDK 来解决这个问题 但没有成功 不应更改引用类型 因为这是唯一出现问题的地方 一次建议是将 SGen exe 放入C
  • VSTS部署IIS应用程序winrm并更改appsettings.json

    我正在使用 部署 IIS 应用程序 winrm 任务在另一台计算机上部署 IIS 应用程序 此任务部署 zip 文件 在此 zip 中有一个 appsettings json 其变量以下划线开头和结尾 我需要替换每个环境的 appsetti

随机推荐

  • SelectMany 创建大量 SQL select 语句,而不是带有 join 的 SQL select 语句

    我正在写一个查询SelectMany并检查它在 LINQPad 中生成的 SQL 查询非常简单 假设我有 3 个实体 Customer Order OrderItem OrderItem保存有关订购什么产品以及订购数量的信息 我想得到全部O
  • 为什么“memset(arr, -1, sizeof(arr)/sizeof(int))”不能将整数数组清除为-1?

    是不是不能使用memset在整数数组上 我尝试了以下方法memset调用并没有得到正确的整数值int array int arr 5 memset arr 1 sizeof arr sizeof int 我得到的值是 arr 0 1 arr
  • 如何检查服务是否正在运行[重复]

    这个问题在这里已经有答案了 我想显示服务状态 如果它正在运行或停止 我正在使用下面的代码 但它在开始服务之前显示 已停止 当服务启动时 它显示 正在运行 当它再次停止时 它仅显示 正在运行 我在设置共享首选项状态时犯了任何错误吗 在主要活动
  • 从 pandas.DataFrame 中选择复杂的标准

    例如我有简单的 DF import pandas as pd from random import randint df pd DataFrame A randint 1 9 for x in range 10 B randint 1 9
  • PHP getopt 操作

    这个问题是关于 php 中的 getopt 函数 我需要将两个参数传递给 php 脚本 例如 php script php f filename t filetype 现在 根据文件类型 可以是 u c 或 s 我需要执行正确的操作 我正在
  • 使用 python 从重定向的 stdin 读取文件

    我正在尝试读取通过命令行重定向到标准输入的文本文件的内容 并在接收者必须将其组装回原始形式时通过互联网发送它 例如 python test py lt file txt 我尝试读取该文件并使用以下代码将其组装回来 灵感来自link for
  • 从服务器端强制刷新客户端页面[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 如何从服务器端刷新当前客户端视图页面 例如 如果我想强制刷新所有客户端现在正在查看的页面
  • 如何在卸载时自动从主屏幕删除应用程序快捷方式?

    我正在开发一个应用程序 该应用程序应在安装后将其快捷方式添加到主屏幕 并在卸载应用程序后将其删除 该应用程序将预安装在最终用户设备上 但仍然应该有卸载选项 这个任务看起来很简单 但实施起来却遇到了很多麻烦 我做了什么 使用添加快捷方式到主屏
  • 在整个范围内均匀生成随机数

    我需要在指定的间隔 max min 内生成随机数 此外 随机数应该均匀分布在区间内 而不是位于特定点 目前我生成为 for int i 0 i lt 6 i DWORD random rand max min 1 min 根据我的测试 随机
  • LinkedHashSet .equals() 与 LinkedList .equals() 具有相同的元素但顺序不同

    考虑以下 SSCCE public static void main String args LinkedHashSet
  • CSS:如何垂直和水平对齐图像?

    我的页面有空间容纳图像 例如最大尺寸为 100x100 的图像 用户可以上传任何尺寸的图像 Web 应用程序将在保持宽高比的情况下将其大小调整为 100x100 因此 图像的大小可以调整为 75x100 或 100x75 等 无论调整大小的
  • 如何使用 Django 中内置的“password_reset”视图?

    我在 urls py 中设置了以下条目 r password reset django contrib auth views password reset 但一旦我去http 127 0 0 1 8000 password reset 我收
  • 在 colgroup 中使用文本对齐中心

    我的页面中有一个表格 我使用 colgroups 以相同的方式格式化此列中的所有单元格 它适用于背景颜色等 但我似乎无法弄清楚为什么文本对齐中心不起作用 它不会将文本居中对齐 Example table cellspacing 5 tabl
  • 如何在flutter中显示.9.png格式的图片?

    这是我的代码 new Image asset images launcher border highlight 9 png fit BoxFit fill 当我改变图像的宽度和高度时 它的显示效果很差 但在原生android中显示正常 fl
  • 在原子变量的上下文中什么是总线锁定?

    我使用 C 很长时间了 现在我开始学习汇编并了解处理器的工作原理 不仅仅是为了好玩 而且我必须将其作为测试程序的一部分 在学习汇编时 我开始听到一些在讨论多线程时到处听到的术语 因为我在科学计算中进行了大量的多线程处理 我正在努力了解全貌
  • 用 Java 处理下载

    我如何能够使用 Java 中的 HttpResponse 处理下载 我向特定站点发出了 HttpGet 请求 该站点返回要下载的文件 我该如何处理这个下载 InputStream 似乎无法处理它 或者也许我使用它的方式错误 假设你实际上正在
  • Fortran 可变参数宏中的 CPP/GPP(加上 Fortran // 连接)

    我正在尝试编译一个巨大的 世界知名的数值天气预报代码 主要用 Fortran 90 编写 使用cpp广泛且成功地与 PGI Intel 和 gfortran 合作 现在 我继承了一个版本 其中专家添加了数百个可变参数宏案例 他们使用英特尔和
  • 安装 IE9 后 Visual Studio 2012 崩溃(故障模块 ntdll.dll)

    Okay 自从 Visual Studio RTM 在我的工作计算机上发布以来 我一直在运行它 上周五我安装 更新了 IE 至版本 9 以测试 JavaScript 问题 安装 IE9 并重新启动计算机后 Visual Studio 201
  • .NET:Type.GetHashCode 是否保证唯一?

    我有人使用 Type GetHashCode 就好像它是主键一样 我认为这是一个可怕的想法 但我想知道是否有某种记录的特殊情况表明没有两种类型具有相同的哈希码 GetHashCode 没有任何保证 除了它可能会随机分布 不是唯一的 文档特别
  • VSTS 构建失败并出现 MSB3325,无法导入 PFX 密钥文件

    我创建了一个构建定义来在 Visualstudio com 上在线构建桌面应用程序 该应用程序在任务构建解决方案 Visual Studio 构建 中失败 并出现以下错误 错误 C Program Files x86 Microsoft V