C# 如何使用Team Foundation Server对象模型获得脚本化的构建定义? 是否有可能使用常规对象模型来获得Team Foundation Server 2015新的构建定义,或者是否强迫我使用REST API?< /P>

C# 如何使用Team Foundation Server对象模型获得脚本化的构建定义? 是否有可能使用常规对象模型来获得Team Foundation Server 2015新的构建定义,或者是否强迫我使用REST API?< /P>,c#,tfs,build,tfsbuild,tfs-2015,C#,Tfs,Build,Tfsbuild,Tfs 2015,如果可以使用对象模型,我应该使用什么类来实现 我能够使用ibildserver.QueryBuildDefinitions获取XAML构建定义。是否有与此方法等效的方法,以便我可以访问新的构建定义及其变量?您正在寻找构建2.0 REST API。这个 有一个客户端包装器作为新NuGet包的一部分提供,Microsoft.TeamFoundation.Build2.WebApi程序集提供了一个BuildHttpClient对象,它是访问新生成系统的起点。您可以使用Microsoft.TeamFou

如果可以使用对象模型,我应该使用什么类来实现


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

您正在寻找构建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
assembly。用您的参数替换所有的
{…}

谢谢,我来看看
BuildHttpClient
。好的,我得到了整个包
。是否有关于如何使用这些包装的文档我怀疑您也需要ExtendedClient:是的,请注意,这种新的体系结构仍在发展,您制作的东西将来可能需要更新