在 C# 中克隆 VSTS 构建定义

2023-12-30

我正在使用 BuildHttpClient 的 .GetDefinitionAsync 和 .CreateDefinitionAsync 来克隆 VSTS 构建定义。这工作正常,但我想在项目的根文件夹之外的不同文件夹中创建构建定义。我可以通过“管理文件夹”链接网络添加文件夹,但如何以编程方式执行此操作?

我尝试过以下方法:

    buildDef = JsonConvert.DeserializeObject<BuildDefinition>(json);
    buildDef.BuildNumberFormat = buildNumFormat;
    buildDef.Name = newBuildDefName;

    Uri tfsURI = new Uri(CollectionReleaseURL);
    buildDef.Url = tfsURI.ToString();
    await buildClient.CreateDefinitionAsync(buildDef, project);

其中Collection发布路径为: 集合发布URL = @"http://my.tfs.server8080/tfs/DefaultCollection/Project/Product/Release http://my.tfs.server8080/tfs/DefaultCollection/Project/Product/Release";

但是当我运行该程序时,它只是将新的构建定义放入以下文件夹中: @”http://my.tfs.server8080/tfs/DefaultCollection/Project http://my.tfs.server8080/tfs/DefaultCollection/Project"

如何将构建定义克隆到 ../Product/Release 文件夹?

更新:我使用以下内容来克隆构建定义,但它没有复制构建步骤!有人知道这是为什么吗?

private static async Task CloneBuildDefAsync(int buildDefId, string newBuildDefName, string buildNumFormat, string sourceControlPath, string URLpath)
{
    var buildClient = createClient();
    var buildDef = (await buildClient.GetDefinitionAsync(project, buildDefId)) as BuildDefinition;

    buildDef.Project = null;

    var json = JsonConvert.SerializeObject(buildDef);
    json = json.Replace(sourceControlMainline, sourceControlPath);
    buildDef = JsonConvert.DeserializeObject<BuildDefinition>(json);

    buildDef.BuildNumberFormat = buildNumFormat;
    buildDef.Name = newBuildDefName;
    buildDef.Path = URLpath;

    await buildClient.CreateDefinitionAsync(buildDef, project);
}

Seems to copy everything but the build step, everything else is cloned and updated perfectly: enter image description here


您想要设置路径属性 https://learn.microsoft.com/en-us/rest/api/azure/devops/build/definitions/create?view=azure-devops-rest-5.0#request-body到你想要的文件夹。

PowerShell 中的克隆示例:

$uri = 'https://dev.azure.com/{organization}/{project}/_apis/build/definitions/{definitionId}'

$result = Invoke-RestMethod -Method Get -Uri $uri -UseDefaultCredentials
$result.path = '\NewFolder\Location'
$result.name = "Testing"

$body = $result | ConvertTo-Json -Depth 7

Invoke-RestMethod -Method POST -uri 'https://dev.azure.com/{organization}/{project}/_apis/build/definitions?api-version=4.0' -UseDefaultCredentials -Body $body -ContentType 'application/json'

创建一个如下所示的构建文件夹结构:

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

在 C# 中克隆 VSTS 构建定义 的相关文章

  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 重载<<的返回值

    include
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • AngularJS - 在 Angular 中声明服务的不同方式的主要区别是什么?

    我正在开发一个 AngularJS 应用程序 并试图坚持 AngularJs 中最有效和最广泛接受的开发风格 目前 我正在使用这种方式声明我的服务 如下所示 app factory MyService function function d
  • 创建对 IObservable 的弱订阅

    我想要做的是确保如果对我的观察者的唯一引用是可观察的 它会被垃圾收集并停止接收消息 假设我有一个带有列表框的控件 称为 消息 后面的代码如下 Short lived display of messages only while the us
  • jquery lavalamp 的问题

    由于某种原因 无论我点击哪个链接 我的背景颜色都会回到最左边的链接 有人知道如何让它保留在点击的链接上吗 css lamp float left margin 25px 0px 0px 90px clear both lavaLamp po
  • 异步编程 APM 与 EAP

    实际上有什么区别异步编程模型 and 基于事件的异步模式 使用哪种方法以及何时使用 The 异步编程模型 APM 是您看到的模型BeginMethod and EndMethod pairs 例如这里是一个Socket使用APM执行 var
  • 如果 Moose 构建器方法失败该怎么办?

    处理构建器方法中的失败的最佳方法是什么 例如 package MyObj use Moose use IO File has gt file name is gt ro isa gt Str required gt 1 has gt fil
  • 使用时间窗口的标签回填缺失数据

    我想根据时间 1天 2天 用不同的标签回填每一列 这是代码 from datetime import datetime timedelta import pandas as pd import numpy as np import rand
  • NSToolbar的标签区域可以画图吗?

    我有一个NSToolbarItem它使用类似于 Xcode 状态视图的视图 它目前没有标签 但我无法找到一种方法来绘制通常绘制项目标签的区域 我希望该视图能够像 Xcode 状态视图一样扩展到该区域 我知道像素的最底部部分NSToolbar
  • 将列表转储到 pickle 文件中并稍后检索[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试保存字符串列表 以便以后可以访问它 使用pickle如何实现呢 一个说明性的例子可能会有所帮助 Pickling 将序列化您的列
  • 使用 Fold 依赖多个先前值来计算线性递归的结果

    I have a linear recurrence problem where the next element relies on more than just the prior value e g the Fibonacci seq
  • 我应该在创建通知之前调用 WakeLock 吗?

    我正在向 Android 应用程序添加通知 目前只有模拟器可供测试 收到通知时 将调用 GCMBaseIntentService 子类 GCMIntentService 中的 onMessage 方法 从这里我创建一个要显示的通知 如果我将
  • Kubernetes集群出站流量IP

    我在 Google Kubernetes Engine 上有一个 Kubernetes 集群 我想为集群的所有传出流量分配一个静态 IP 我已经保留了外部 IP 但无法使用 GCP 控制台将它们分配给集群 我找到了一个使用 cli 执行此操
  • 数据读取器检索数据

    我的数据库中有会员资格和预订表 其中包含属性 cust id 它是会员资格中的主键和预订中的参考键 当我执行数据读取器时 我希望它从会员表中读取 cust id 值 但它是从预订表中读取的 另外 当我比较两个 cust id 值时 1 个取
  • 通过 PayPal iOS SDK 进行 PayPal 实时交易的问题

    我正在为 iPad 开发 iOS 应用程序 版本 7 x 我们需要通过应用程序执行 PayPal 交易 我们包含了 PayPal iOS SDK 并参考他们的示例代码来执行交易 示例代码放置在here https github com pa
  • AWS Lambda 和 .NET Core - 使用 Linux 运行时?

    我正在用 C NET Core 编写 Alexa 技能 以便从 AWS Lambda 函数 在 Amazon Linux 上运行 运行 当我编译项目时 点网发布 我收到错误 找不到框架 NETCoreApp Version v1 0 的运行
  • 需要一点数学帮助来调整图像大小

    我有一个具有 X 宽度和 Y 高度值的图像 现在我想将高度设置为 60px 通过哪种计算我可以计算出图像正确调整大小的高度 我认为你正在努力保持纵横比 如果是这样 请使用以下命令 比率 原始高度 新高度 新宽度 原始宽度 比例
  • 在 Python (Pycharm) 中导入 numpy,安装了 Anaconda

    我对 python 很陌生 我正在尝试编写代码来导出一阶 ODE 因此 我需要某些软件包 例如 numpy 来执行此操作并安装了 Anaconda 当我尝试在 PyCharm 中使用 import numpy 命令时 它不起作用 我收到 M
  • 对产品列表进行分类的算法?拿2

    我问了一个类似的问题 https stackoverflow com questions 695347 algorithm to classify a list of products几周前就问过这个问题 但我没有正确地提出这个问题 所以我
  • 无法将 R 数据帧转换为 Spark DataFrame

    当我尝试使用以下方法将 R 中的本地数据帧转换为 Spark DataFrame 时 raw data lt as DataFrame sc raw data 我收到此错误 17 01 24 08 02 04 警告 RBackendHand
  • 如何禁用 OpenCV 相机中的缓冲区?

    我遇到过这种情况 我使用 OpenCV 来检测相机前面的人脸 并对这些人脸进行一些机器学习 我遇到的问题是 一旦我完成所有处理 并去抓取下一帧 我得到的是过去 而不是现在 意思是 我将读取缓冲区内的内容 而不是实际在相机前面的内容 由于我不
  • 在 C# 中克隆 VSTS 构建定义

    我正在使用 BuildHttpClient 的 GetDefinitionAsync 和 CreateDefinitionAsync 来克隆 VSTS 构建定义 这工作正常 但我想在项目的根文件夹之外的不同文件夹中创建构建定义 我可以通过