如何使用teamfoundationserver对象模型获得可脚本化的构建定义

本文关键字:脚本 构建 定义 何使用 teamfoundationserver 对象模型 | 更新日期: 2023-09-27 18:15:00

是否有可能使用常规对象模型获得Team Foundation Server 2015新构建定义,或者我是否被迫使用REST API获得它们?

如果可以使用对象模型,我应该使用什么类来这样做?

我能够使用IBuildServer.QueryBuildDefinitions获得XAML构建定义。是否有与此方法等效的方法,以便我可以访问新的构建定义及其变量?

如何使用teamfoundationserver对象模型获得可脚本化的构建定义

您正在寻找Build 2.0 REST API。文档可以在这里找到。

有一个客户端包装器作为新的NuGet包的一部分,Microsoft.TeamFoundation.Build2.WebApi程序集提供了一个BuildHttpClient对象,它是访问新的构建系统的起点。

您可以使用Microsoft.TeamFoundation.Build.WebApi.BuildHttpClient获取构建定义:

        var cred = new VssCredentials(new WindowsCredential(new NetworkCredential("{userid}", "{password}")));
        string collectionURL = "http://{tfs-server-url}:8080/tfs/{collection-name}";
        var buildClient = new BuildHttpClient(new Uri(collectionURL, UriKind.Absolute), cred);
        //this is the source project's build definition
        //http://{tfs-server-url}:8080/tfs/{collection-name}/{project-name}/_build?_a=completed&definitionId={buildDefId}
        var buildDefId = 20;
        //"http://{tfs-server-url}:8080/tfs/{collection-name}/{project-name}";
        var projectName = "{project-name}";
        var buildDef = (await buildClient.GetDefinitionAsync(projectName, buildDefId)) as BuildDefinition;
        Console.WriteLine(buildDef.Name);//here you can get all the other properties

VssCredentials类来自Microsoft.VisualStudio.Services.Common程序集。用你的参数替换所有的{...}