TFS API:二、TFS 代码查询工作项

TFS API:二、TFS  代码查询工作项

 首先我们需要认识TFS的两大获取服务对象的类。

  他们分别为TfsConfigurationServer和TfsTeamProjectCollection,他们的不同点在于可以获取不同的TFS API服务类。他们的区别如下:

服务

TfsConfigurationServer

(服务器级别)

TfsTeamProjectCollection

(集合级别)

ITeamFoundationRegistry

 √  √

IIdentityManagementService

 √  √

ITeamFoundationJobService

 √  √

IPropertyService

 √  √

IEventService

 √  √

ISecurityService

 √  √

ILocationService

 √  √

TswaClientHyperlinkService

 √  √

ITeamProjectCollectionService

 √

 √

IAdministrationService

 √  √

ICatalogService

 √

 

VersionControlServer

 

 √

WorkItemStore

 

 √

IBuildServer

 

 √

ITestManagementService

 

 √

ILinking

 

 √

ICommonStructureService3

 

 √

IServerStatusService

 

 √

IProcessTemplates

 

 √

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

基本上我们可以通过上面两个类对TFS操作所有功能点。下面我们先看看如何使用TfsTeamProjectCollection获取特定团队集合下的所有项目,并且打印出项目名称。

 

首先我们需导入一下命名空间

using Microsoft.TeamFoundation.Client;

using Microsoft.TeamFoundation.Framework.Client;

using Microsoft.TeamFoundation.Framework.Common;

using Microsoft.TeamFoundation.WorkItemTracking.Client;

using Microsoft.TeamFoundation.VersionControl.Client;

其次链接TFS

Uri tfsUri = new Uri("http://10.0.9.142:8080/tfs/web");

TfsTeamProjectCollection server = new TfsTeamProjectCollection(tfsUri);

WorkItemStore workstore = server.GetService<WorkItemStore>();

 

在这里我需要特别的说明一下

http://10.0.9.142:8080/tfs/web   这个地址一定要写对,有时候这个地址的确可以在浏览器打开TFS,但并不是链接TFS的地址,否则会提示这样的错误

TF31002: 无法连接到此 Team Foundation Server: http://10.0.9.142:8080/tfs/web。

Team Foundation Server URL: http://10.0.9.142:8080/tfs/web。

 

 

 

如何获取我们需要的正确地址,请看图。

 

 

链接上TFS以后,就可以查询很多数据了

 

//取出团队集合URI下的项目名称,如果团队集合为空则取默认集合下项目

Uri tfsUri = new Uri("http://10.0.9.142:8080/tfs/web ");

TfsTeamProjectCollection server = new TfsTeamProjectCollection(tfsUri);

WorkItemStore workstore = server.GetService<WorkItemStore>();

foreach (Project project in workstore.Projects)

{

      Console.WriteLine("TFS集合下项目名称是:" + project.Name);

}

            Console.WriteLine("---------------------------------------------------------------");

  下面的例子将获取我们整个TFS服务器的所有团队集合以及团队集合下的所有团队名称

  

posted @ 2015-06-29 14:20  风儿_VIP  阅读(618)  评论(0编辑  收藏  举报