我正在开发一个软件来返回存储在集合中的TFS项目的所有版本。当前TFS基础结构的特殊性是构建服务器。它是一个专用服务器(远程服务器,仅用于构建)。所以下面代码的第三行对我来说不起作用,因为就我而言,构建"服务"不直接位于TFS服务器上:
Uri uri = new Uri("urlToTFS");
TfsConfigurationServer tfs = TfsConfigurationServerFactory.GetConfigurationServer(uri);
IBuildServer buildServer = tfs.GetService<IBuildServer>();
您是否有任何想法从专用构建服务器实例化构建服务器对象?通过提供构建服务器名称或获取TFS服务器的属性?
提前谢谢。
答案 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