You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure SDK for .NET是否有属性判断Azure DevOps流水线类型(经典/YAML)?

判断Azure DevOps流水线类型(经典/YAML)的Azure SDK for .NET属性

是的,借助Azure SDK for .NET里的BuildDefinition类(归属Microsoft.TeamFoundation.Build.WebApi命名空间),可以通过以下属性判断流水线的配置类型:

  • Process.Type:这是最直接的判断依据,对应ProcessType枚举:
    • 枚举值ProcessType.Classic(数值为1):代表经典流水线
    • 枚举值ProcessType.Yaml(数值为2):代表YAML流水线
  • 辅助验证属性(可选,用于交叉确认):
    • YamlFilename:仅YAML流水线会填充该属性,存储对应的YAML文件路径;经典流水线此属性为null或空字符串
    • Process.ProcessParameters:经典流水线会包含结构化的流程参数JSON,YAML流水线该字段通常为空或仅含基础配置

代码示例

using Microsoft.TeamFoundation.Build.WebApi;
using Microsoft.VisualStudio.Services.WebApi;

// 初始化Azure DevOps连接
var connection = new VssConnection(new Uri("https://dev.azure.com/你的组织名"), new VssBasicCredential(string.Empty, "你的个人访问令牌"));
var buildClient = connection.GetClient<BuildHttpClient>();

// 获取指定流水线定义
var buildDefinition = await buildClient.GetDefinitionAsync("你的项目名", definitionId: 123);

// 判断流水线类型
if (buildDefinition.Process.Type == ProcessType.Yaml)
{
    Console.WriteLine("这是YAML配置的流水线");
    Console.WriteLine($"关联YAML文件路径:{buildDefinition.YamlFilename}");
}
else if (buildDefinition.Process.Type == ProcessType.Classic)
{
    Console.WriteLine("这是经典架构的流水线");
}

注意:请确保使用最新版本的Microsoft.TeamFoundationServer.Client NuGet包,旧版本的属性或枚举可能存在差异。

内容的提问来源于stack exchange,提问作者Mudit Balooja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 06:20:00