2012-06-18 57 views
3

我想访问团队项目的构建信息以在我们公司的其他应用程序中使用它们。 我需要的是要求团队项目的所有构建。 我需要一个像信息: - UNC路径的Outlut被复制到 - 名称 - 构建 日期 - 谁开始或触发生成(如果可能)通过Web服务访问Team Foundation Server的信息

我没有找到任何详细描述了如何访问通过Web服务的TFS信息。我学到的是TFS有一个服务接口。

我希望任何人都可以给我一点点提示如何达到我的目标。如果任何人有一些示例代码,我一定会很高兴:-)

回答

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的标准用法,我认为它与你正在寻找的信息提供。

+0

感谢这个伟大的例子。我没有得到它运行,因为我总是得到一个“HTTP 404页找不到”错误回来。 我的调用如下所示: TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(“http:// MyTfsServerHostName:8080/tfs”)); 这是我配置Visual Studio的URL ......我也尝试了http:// MyTfsServerHostName以及错误501 – sebastianmehler

+3

在团队资源管理器中,右键单击Team Collection的主节点并选择属性。使用你在'Url'属性中看到的东西(类似于'http:// TFSName:8080/tfs/CollectionName') – pantelif

+0

谢谢,现在就开始工作。谢谢你的试用帮助:-) – sebastianmehler

1

我建议使用wrapper for the wrapper来访问TFS,因为它更容易,可能足以满足您的需求。如果不是,我建议使用TFS SDK

如果你仍然想要降低,那么请阅读SO

相关问题