TFS二次开发系列:3、TFS二次开发的第一个实例

  首先咱们须要认识TFS二次开发的两大获取服务对象的类。node

  他们分别为TfsConfigurationServer和TfsTeamProjectCollection,他们的不一样点在于能够获取不一样的TFS API服务类。他们的区别以下:服务器

 

服务ide

TfsConfigurationServerui

(服务器级别)spa

TfsTeamProjectCollection3d

(集合级别)code

ITeamFoundationRegistryserver

选中标记

选中标记

IIdentityManagementService对象

选中标记

选中标记

ITeamFoundationJobServiceblog

选中标记

选中标记

IPropertyService

选中标记

选中标记

IEventService

选中标记

选中标记

ISecurityService

选中标记

选中标记

ILocationService

选中标记

选中标记

TswaClientHyperlinkService

选中标记

选中标记

ITeamProjectCollectionService

选中标记

 

IAdministrationService

选中标记

选中标记

ICatalogService

选中标记

 

VersionControlServer

 

选中标记

WorkItemStore

 

选中标记

IBuildServer

 

选中标记

ITestManagementService

 

选中标记

ILinking

 

选中标记

ICommonStructureService3

 

选中标记

IServerStatusService

 

选中标记

IProcessTemplates

 

选中标记

   基本上咱们能够经过上面两个类对TFS操做全部功能点。下面咱们先看看如何使用TfsTeamProjectCollection获取特定团队集合下的全部项目,而且打印出项目名称。

 //取出团队集合URI下的项目名称,若是团队集合为空则取默认集合下项目
            //Uri tfsUri = new Uri("http://pc-20130113jkun:8080/tfs/Calueng");这种将会Calueng团队集合下项目
            Uri tfsUri = new Uri("http://pc-20130113jkun:8080/tfs");
            TfsTeamProjectCollection server = new TfsTeamProjectCollection(tfsUri);
            WorkItemStore workstore = server.GetService<WorkItemStore>();
            foreach (Project project in workstore.Projects)
            {
                Console.WriteLine("DefaultCollection集合下项目名称是:" + project.Name);
            }
            Console.WriteLine("---------------------------------------------------------------");

  下面的例子将获取咱们整个TFS服务器的全部团队集合以及团队集合下的全部团队名称

           //TFS配置服务获取全部项目的名称和全部的团队集合名称
            TfsConfigurationServer configserver = TfsConfigurationServerFactory.GetConfigurationServer(tfsUri);
            ReadOnlyCollection<CatalogNode> collectNodes =
                configserver.CatalogNode.QueryChildren(new[] { CatalogResourceTypes.ProjectCollection },
                false, CatalogQueryOptions.None);
            foreach (CatalogNode collect in collectNodes)
            {
                Guid collectid = new Guid(collect.Resource.Properties["InstanceId"]);
                TfsTeamProjectCollection teamproject = configserver.GetTeamProjectCollection(collectid);
                Console.WriteLine("团队集合名称: " + teamproject.Name);
                ReadOnlyCollection<CatalogNode> projNodes = collect.QueryChildren(new[] { CatalogResourceTypes.TeamProject }, 
false, CatalogQueryOptions.None); foreach (CatalogNode projnode in projNodes) { Console.WriteLine(" 团队项目名称:" + projnode.Resource.DisplayName); } } Console.ReadLine();

  最后本实例使用VS2012+TFS2012编写。如需源码请点击 TFSTest1.rar 下载。固然你须要引入TFS的一些API DLL文件。

相关文章
相关标签/搜索