TFS API - 如何从专用构建服务器

时间:2017-11-20 13:33:10

标签: c# tfs

我正在开发一个软件来返回存储在集合中的TFS项目的所有版本。当前TFS基础结构的特殊性是构建服务器。它是一个专用服务器(远程服务器,仅用于构建)。所以下面代码的第三行对我来说不起作用,因为就我而言,构建"服务"不直接位于TFS服务器上:

Uri uri = new Uri("urlToTFS");
TfsConfigurationServer tfs = TfsConfigurationServerFactory.GetConfigurationServer(uri);
IBuildServer buildServer = tfs.GetService<IBuildServer>();

您是否有任何想法从专用构建服务器实例化构建服务器对象?通过提供构建服务器名称或获取TFS服务器的属性?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

Microsoft.TeamFoundationServer.ExtendedClient中的API主要用于提供与旧版XAML构建的向后兼容性。

对于新的构建系统,您需要使用REST API来获取构建列表。一个代码片段供您参考:

using System;
using System.Collections.Generic;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Build.WebApi;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Uri tfsurl = new Uri("http://xxxx:8080/tfs/CollectionName");
            TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(tfsurl);
            BuildHttpClient bhc = ttpc.GetClient<BuildHttpClient>();
            List<Build> builds = bhc.GetBuildsAsync("ProjectName").Result;
            foreach (Build bu in builds)
            {
                Console.WriteLine(bu.BuildNumber);
            }
            Console.ReadLine();
        }
    }
}

你可以看看这个类似的问题:TFS server API only list the XAML build definitions