c# 获取TFS结构 文件
#region 获取最新版本
        /// <summary>
        /// 获取最新版本
        /// </summary>
        /// <param name="server_url">http://192.168.3.202:8080/tfs/projectcollection_single</param>
        /// <param name="server_path">$/TP_publish/WebSln_Test_For_Publish/WebTest</param>
        /// <param name="loacl_path">E:\Tfs\Project_Collection_Single</param>
        /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
        public static bool GetLastVersionByPath(string server_url, string loacl_path)
        {
            var teamProjects = new TfsTeamProjectCollection(new Uri(server_url));
            var teamVersion = teamProjects.GetService<VersionControlServer>();
            //Workspace workspace = teamVersion.GetWorkspace(loacl_path);
            var workspace = teamVersion.GetWorkspace(System.Net.Dns.GetHostName(), teamVersion.AuthorizedUser);//参数1 工作区名称,默认电脑名称
            workspace.Get();
            return true;
        }
        #endregion
获取最新版本
#region 获取集合 解决方案 项目
        public void Init()
        {
            Uri tfsUri = new Uri(this.TfsUrl);
            //TFS配置服务获取所有项目的名称和所有的团队集合名称
            TfsConfigurationServer configserver = TfsConfigurationServerFactory.GetConfigurationServer(tfsUri);
            ReadOnlyCollection<CatalogNode> collectNodes = configserver.CatalogNode.QueryChildren(new[] { CatalogResourceTypes.ProjectCollection }, false, CatalogQueryOptions.None);
            this.Collotion = new List<Model.Collotion>();
            foreach (CatalogNode collect in collectNodes)
            {
                Guid collectid = new Guid(collect.Resource.Properties["InstanceId"]);
                TfsTeamProjectCollection teamproject = configserver.GetTeamProjectCollection(collectid);
                var collotion = new Model.Collotion()//集合
                {
                    Name = collect.Resource.DisplayName,
                    Path = teamproject.Uri.Host + "\\" + collect.Resource.DisplayName,
                    Url = teamproject.Uri.ToString(),
                    Solution = new List<Model.Solution>()
                };
                var teamVersion = teamproject.GetService<VersionControlServer>();
                var workspace = teamVersion.GetWorkspace(Dns.GetHostName(), teamVersion.AuthorizedUser);
                var folders = workspace.Folders;
                foreach (var folder in folders)
                {
                    var items = teamVersion.GetItems(folder.ServerItem, RecursionType.Full).Items;
                    var arr = items.Where(ex => ex.ServerItem.EndsWith(".sln")).ToList();
                    foreach (var item in arr)//解决方案
                    {
                        if (teamVersion.GetItems(item.ServerItem.Substring(, item.ServerItem.LastIndexOf("/")), RecursionType.Full).Items.Where(ex => ex.ServerItem.EndsWith("Web.config")).Count() > )
                        {
                            var solution = new Model.Solution()
                            {
                                Name = Path.GetFileName(item.ServerItem),
                                Path = item.ServerItem,
                                Url = collotion.Url,
                                Project = new List<Model.Project>()
                            };
                            var dirPath = System.IO.Path.GetDirectoryName(item.ServerItem).Replace("\\", "/") + "/";
                            var projects = items.Where(ex => ex.ServerItem.StartsWith(dirPath) && ex.ServerItem.EndsWith(".csproj")).ToList();
                            foreach (var project in projects)//项目
                            {
                                if (teamVersion.GetItems(project.ServerItem.Substring(, project.ServerItem.LastIndexOf("/")), RecursionType.Full).Items.Where(ex => ex.ServerItem.EndsWith("Web.config")).Count() > )
                                {
                                    solution.Project.Add(new Model.Project()
                                    {
                                        Name = Path.GetFileName(project.ServerItem),
                                        Path = project.ServerItem,
                                        Url = collotion.Url,
                                        mappingPath = workspace.GetWorkingFolderForServerItem(project.ServerItem).LocalItem
                                    });
                                }
                            }
                            collotion.Solution.Add(solution);
                        }
                    }
                }
                Collotion.Add(collotion);
            }
        }
        #endregion
获取集合 解决方案 项目
代码下载:
没找到上传文件的地方:qq 674613047
c# 获取TFS结构 文件的更多相关文章
- 如何通过SQL注入获取服务器本地文件
		写在前面的话 SQL注入可以称得上是最臭名昭著的安全漏洞了,而SQL注入漏洞也已经给整个网络世界造成了巨大的破坏.针对SQL漏洞,研究人员也已经开发出了多种不同的利用技术来实施攻击,包括非法访问存储在 ... 
- struts文件上传,获取文件名和文件类型
		struts文件上传,获取文件名和文件类型 Action中还有两个属 性:uploadFileName和uploadContentType,这两个属性分别用于封装上传文件的文件名.文件类型.这是S ... 
- Java获取Web服务器文件
		Java获取Web服务器文件 如果获取的是服务器上某个目录下的有关文件,就相对比较容易,可以设定死绝对目录,但是如果不能设定死绝对目录,也不确定web服务器的安装目录,可以考虑如下两种方式: 方法一: ... 
- ie下获取上传文件全路径
		ie下获取上传文件全路径,3.5之后的火狐是没法获取上传文件全路径的 /*获取上传文件路径*/ function getFilePath(obj) { var form = $(this).paren ... 
- OpenFileDialog获取文件名和文件路径问题
		OpenFileDialog获取文件名和文件路径问题(转) 转自:http://blog.sina.com.cn/s/blog_7511914e0101cbjn.html System.IO.Path ... 
- Greenplum获取表结构
		最近在折腾greenplum,遇到一个蛋疼的问题,那就是获取表结构,也就是建表语句.大家都知道在MySQL里面是非常easy的,show create table table_name 就搞定了,在g ... 
- Android之获取string.xml文件里面的方法
		获取string.xml文件里面的方法 在此做个笔记: 1.在AndroidManifest.xml与layout等xml文件里: android:text="@string/resourc ... 
- spring java 获取webapp下文件路径
		spring java 获取webapp下文件路径 @RequestMapping("/act/worldcup_schedule_time/imgdownload") @Resp ... 
- java 获取classpath下文件多种方式
		java 获取classpath下文件多种方式 一:properties下配置 在resources下定义server.properties register.jks.path=classpath\: ... 
随机推荐
- iOS中让Settings Bundle中的变化立即在App中反应出来的两种方法
			大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 为了能够在Settings Bundle中的变化在进入App后 ... 
- 06 获取Activity的栈管理器
			代码 <span style="font-size:18px;">package com.fmy.day8_29task.util; import java.util. ... 
- XMLTABLE
			 XMLTABLE Syntax Description of the illustration xmltable.gif XMLnamespaces_clause::= Description ... 
- Sqoop执行mysql删除语句
			如果使用Sqoop删除mysql中的数据,并且传递动态日期参数,则使用下方的方法: 创建一个sh文件,内容如下: #!/bin/sh ## 环境变量生效 . /etc/profile #[调度删除导入 ... 
- 流密码和RC4
			定义:流密码是对称密码算法,从明文输入流逐位或逐字节产生密文输出. 实例:使用最广泛的流密码是RC4. 流密码结构: 流密码类似于”一次一密”,不同的是”一次一密”使用的是真正的随机数流,而流密码使用 ... 
- 字符串的n位左旋
			要求:将主串的某一段(n位)翻转到主串的最后,如:abcdef以2位翻转则结果为:cdefab.要求时间复杂度为O(n),空间复杂度为O(1) 思路一:可以重新定义一个与原串相同大小的字符数组resu ... 
- TCP的定时器系列 — 零窗口探测定时器
			主要内容:零窗口探测定时器的实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 出现以下情况时,TCP接收方的接收缓冲区将被塞满数据: 发送方的发送速 ... 
- Socket编程实践(11) --epoll原理与封装
			常用模型的特点 Linux 下设计并发网络程序,有典型的Apache模型(Process Per Connection,PPC), TPC(Thread Per Connection)模型,以及 se ... 
- 在IFrame中查找IFRAME中的元素的方式
			下面是内部iframe找外部mainFrame的情况 var websiteSearchButton = window.parent.parent.document.getElementById(' ... 
- 08_Android中的SimpleAdapter的使用
			 1 目的界面 2.编写Android清单文件 <?xml version="1.0" encoding="utf-8"?> <manif ... 
