国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

TFS二次開發02——連接TFS

2019-11-17 03:17:34
字體:
來源:轉載
供稿:網友

TFS二次開發02——連接TFS

Posted on 2014-03-15 17:12 祥叔 閱讀(...) 評論(...) 編輯 收藏

在上一篇《TFS二次開發01——TeamPRojectsPicher》介紹了 TeamProjectsPicher 對象,使用該對象可以很簡單的實現連接TFS。

但是如果我們要實現自定義的UI客戶端 或者我們要做一個非WinForm版的TFS客戶端(比如Web 或者WPF),那么TeamProjectsPicher 對象就無能為力了。那我們就只能自己實現了。

這篇文章主要介紹:

1:連接TFS Server

2:獲取所有TfsTeamProjectCollection

3:獲取某個TfsTeamProjectCollection 下的所有Team Project

添加命名空間

using Microsoft.TeamFoundation.Client;

using Microsoft.TeamFoundation.Framework.Client;

using Microsoft.TeamFoundation.Framework.Common;

using Microsoft.TeamFoundation.VersionControl.Client;

1:連接TFS服務器

       //想要連接TFS,肯定先要知道TFS 的地址       string tfsServerURL = "http://192.168.83.70:8080/tfs";       Uri configurationServerUri = new Uri(tfsServerURL);       //與TFS服務器連接       TfsConfigurationServer configurationServer = TfsConfigurationServerFactory.GetConfigurationServer(configurationServerUri);

2:獲取所有團隊項目結合(TfsTeamProjectCollection)

        /// <summary>        /// 查詢所有指定TFS服務上的所有TeamProjectCollection 信息        /// </summary>        /// <param name="tfsServerURL"></param>        /// <returns></returns>        List<TfsTeamProjectCollection> GetAllTeamProjectCollection(string tfsServerURL)        {            Uri configurationServerUri = new Uri(tfsServerURL);            //與TFS服務器連接            TfsConfigurationServer configurationServer = TfsConfigurationServerFactory.GetConfigurationServer(configurationServerUri);                      List<TfsTeamProjectCollection> lst = new List<TfsTeamProjectCollection>();            //TFS目錄節點            CatalogNode configurationServerNode = configurationServer.CatalogNode;            //查詢當前TFS下的所有TeamProjectCollection            ReadOnlyCollection<CatalogNode> tpcNodes = configurationServerNode.QueryChildren(                    new Guid[] { CatalogResourceTypes.ProjectCollection },                    false,                    CatalogQueryOptions.None);            //遍歷每一個TeamProjectCollection 節點            foreach (CatalogNode tpcNode in tpcNodes)            {            //獲取 當前 team project collection 名稱.                String displayName = tpcNode.Resource.DisplayName;                // 獲得 當前 team project collection 描述.                String description = tpcNode.Resource.Description;                        //獲取當前 team project collection 的描述.                ServiceDefinition tpcServiceDefinition = tpcNode.Resource.ServiceReferences["Location"];                ILocationService configLocationService = configurationServer.GetService<ILocationService>();                Uri tpcUri = new Uri(configLocationService.LocationForCurrentConnection(tpcServiceDefinition));                // 真正的連接到team project collection                TfsTeamProjectCollection tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(tpcUri);                lst.Add(tpc);            }            return lst;        }

TfsTeamProjectCollection 對象常用屬性:

TfsTeamProjectCollection. CatalogNode. Resource.DisplayName // team project collection 名稱.

TfsTeamProjectCollection .Name           // team project collection 名稱.

TfsTeamProjectCollection .Uri             // team project collection Url 信息.

TfsTeamProjectCollection. CatalogNode. Resource. Description // team project collection 描述.

3:獲取某個TfsTeamProjectCollection 下的所有Team Project信息

      TeamProject[] GetAllTeamProject(TfsTeamProjectCollection tpc)        {            List<TeamProject> lst = new List<TeamProject>();            VersionControlServer version = tpc.GetService(typeof(VersionControlServer)) as VersionControlServer;            return version.GetAllTeamProjects(true);        }

由于我們在實際應用中連接到TFS時,只能連接一個TfsTeamProjectCollection 。所以如果我們知道了該TfsTeamProjectCollection的Url 那么就可以免去上面的步驟,代碼乳如下:

        /// <summary>        /// 獲取所有的TeamProject        /// </summary>        /// <returns></returns>        TeamProject[] GetAllTeamProject(string tpcURL)        {            //連接到team project collection ,使用此方式直接連接TFS時 TfsTeamProjectCollection. CatalogNode 為 none 。            //因為在使用時通常是只連接到一個Team project collection ,所有更多的時候我們使用這種方式連接TFS            TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri(tpcURL));            //版本控制            VersionControlServer version = tpc.GetService(typeof(VersionControlServer)) as VersionControlServer;            //獲取所有TeamProject             return version.GetAllTeamProjects(true);        }

結合上面的代碼可以實現如下圖所示的效果:

4:創建團隊項目

            TeamProjectFolderOptions project = new TeamProjectFolderOptions("project1");            version.CreateTeamProjectFolder(project);


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜昌市| 手游| 新兴县| 惠州市| 临泽县| 石楼县| 阳春市| 绥芬河市| 丹凤县| 同德县| 庆安县| 于都县| 光山县| 盘山县| 枣强县| 天峻县| 湖口县| 广水市| 临桂县| 黄陵县| 大石桥市| 易门县| 龙州县| 万源市| 探索| 开原市| 罗城| 赤城县| 汤原县| 平阳县| 宽城| 布拖县| 岑巩县| 宜君县| 德兴市| 鄂伦春自治旗| 湛江市| 南部县| 延津县| 庐江县| 龙江县|