通过 Web 服务访问 Team Foundation Server 的信息

3
我希望能够访问团队项目的构建信息以在我们公司的其他应用程序中使用。我需要请求一个团队项目的所有构建。我需要以下信息: - 复制输出的UNC路径 - 名称 - 构建日期 - 谁启动或触发了构建(如果可能)
我没有找到任何有关如何通过 Web 服务访问 TFS 信息的说明。我了解到 TFS 有一个服务接口。
我希望有人能给我一些提示,以达到我的目标。如果有人有一些示例代码,我肯定会很高兴 :-)
2个回答

2
这样的东西是否有帮助呢:
using System;
using Microsoft.TeamFoundation.Build.Client;
using Microsoft.TeamFoundation.Client;

namespace BuildDetails
{
    class Program
    {
        static void Main()
        {
            TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfsURI"));
            var buildService = (IBuildServer)teamProjectCollection.GetService(typeof(IBuildServer));

            IBuildDefinition buildDefinition = buildService.GetBuildDefinition("TeamProjectName", "BuildDefinitionName");
            IBuildDetail[] buildDetails = buildService.QueryBuilds(buildDefinition);

            foreach (var buildDetail in buildDetails)
            {
                IBuildInformation buildInformation = buildDetail.Information;
                Console.Write(buildDetail.BuildNumber+"\t");
                Console.Write(buildDefinition.Name+"\t");
                Console.Write(buildDetail.Status+"\t");
                Console.Write(buildDetail.StartTime+"\t");
                Console.WriteLine((buildDetail.FinishTime - buildDetail.StartTime).Minutes);
            }
        }
    }
}

这只是使用TFS-SDK的标准方法,我认为它提供了您正在寻找的信息。


感谢这个很棒的例子。但是我无法运行它,因为我总是收到一个“HTTP 404页面未找到”的错误。我的调用看起来像这样: TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://MyTfsServerHostName:8080/tfs"));这就是我在Visual Studio中配置的URL...我也尝试了http://MyTfsServerHostName以及501错误。 - sebastianmehler
3
在团队资源管理器中,右键单击团队项目集的主节点,然后选择“属性”。使用在“Url”属性中看到的内容(类似于 http://TFSName:8080/tfs/CollectionName) 。 - pantelif

1

我建议使用包装器来访问TFS,因为这样更容易,而且可能已经足够满足您的需求。

如果不行,我建议使用TFS SDK

如果您仍然想要更低级别的操作,请阅读这个SO


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接