使用C#从TFS获取最新版本

http://www.cnblogs.com/chengxingliang/p/3163513.html

http://blogs.microsoft.co.il/shair/2014/09/10/tfs-api-part-55-source-control-get-history/


https://msdn.microsoft.com/zh-cn/library/bb286958.aspx

下载程序集:Microsoft.TeamFoundation.dll 、Microsoft.TeamFoundation.Client.dll、  Microsoft.TeamFoundation.Common.dll、Microsoft.TeamFoundation.VersionControl.Client.dll

 private static bool GetFilesFromTFS()
        {
            Uri tfsUri = new Uri(serverUrl);
            TfsTeamProjectCollection server = new TfsTeamProjectCollection(tfsUri);//登录TFS 

            VersionControlServer versionControl = (VersionControlServer)server.GetService(typeof(VersionControlServer));//获取版本控制器服务

            //设置环境变量
            string UserName = versionControl.AuthenticatedUser;
            string HostName = System.Net.Dns.GetHostName();

            //创建工作区
            Workspace[] workspaces = versionControl.QueryWorkspaces(WorkSpaceName, UserName, HostName);//HostName

            Workspace workspace = null;
            if (workspaces.Length == 0)
            {
                try
                {
                    workspace = versionControl.CreateWorkspace(WorkSpaceName, UserName, "create workspace for manefist");
                }
                catch (Exception ex)
                {

                    Console.WriteLine(ex.Message);
                    return false;
                    //WorkingFolder folder = new WorkingFolder(ManifestTFSServerPath, ProjectLocalPath);
                    //versionControl.DeleteWorkspace(WorkSpaceName, UserName);
                    //WorkSpaceName = WorkSpaceName + "_" + Guid.NewGuid();
                    //Console.WriteLine("The workspace {0} {1} is exists in computer {2} ! it'll create a new workspace {3}", WorkSpaceName, UserName, HostName, WorkSpaceName);
                    //workspace = versionControl.CreateWorkspace(WorkSpaceName, UserName, "recreate workspace for manefist " + DateTime.UtcNow.ToString("yyyy-MM-dd mm:hh:ss"));
                    workspace.DeleteMapping(folder);
                }
            }
            else
            {
                workspace = workspaces[0];
            }

            if (!workspace.IsServerPathMapped(ManifestTFSServerPath))
            {
                if (!Directory.Exists(ProjectLocalPath))
                {
                    Directory.CreateDirectory(ProjectLocalPath);
                }
                try
                {
                    workspace.Map(ManifestTFSServerPath, ProjectLocalPath);
                }
                catch (Exception ex)
                {

                    Console.WriteLine("The mapping exists in {0}", ProjectLocalPath);
                    return false;
                }
            }
            TeamProjectPicker tpp = new TeamProjectPicker(TeamProjectPickerMode.SingleProject, false);
            //ProjectInfo projectInfo = tpp.SelectedProjects[0];

            ItemSpec spe = new ItemSpec(ManifestTFSServerPath, RecursionType.Full);
            ItemSet set = versionControl.GetItems(spe, VersionSpec.Latest, DeletedState.NonDeleted, ItemType.File, false);
            Item[] items = set.Items.Where(i => !i.ServerItem.ToLower().Equals(ManifestTFSServerPath.ToLower()) && i.ItemType == ItemType.File).ToArray();

            Console.WriteLine("Start Geting the latest version from tfs"+DateTime.Now.ToLongTimeString());
            foreach (Item item in items)
            {
                item.DownloadFile(workspace.GetLocalItemForServerItem(item.ServerItem));
                string itemName= item.ServerItem.Substring(item.ServerItem.LastIndexOf(@"/", System.StringComparison.Ordinal) + 1);
                Console.WriteLine(itemName+" finished!"+DateTime.Now.ToLongTimeString());
               
            }
            Console.WriteLine("Geting the latest version Successfully!" + DateTime.Now.ToLongTimeString());
            return true;
        }

    <!--TFS Start-->
    <add key="ProjectLocalPath" value="\\STCSRV-C81\MMFeedHealthyDatacache\manifest_BWInt"/>
      <!--\\LSSTCHOST06\mmfeeds\manifest_BWTest-->
    <add key="ManifestTFSServerPath" value="$/Bing/STC-A/Multimedia/Feed/manifest_BWInt"/>
    <add key="TFSServerUrl" value="http://vstfbing:8080/tfs/bing" />
    <add key="WorkSpaceName" value="ManefistWorkSpace003"/>
    <!--TFS End-->


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值