#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结构 文件的更多相关文章

  1. 如何通过SQL注入获取服务器本地文件

    写在前面的话 SQL注入可以称得上是最臭名昭著的安全漏洞了,而SQL注入漏洞也已经给整个网络世界造成了巨大的破坏.针对SQL漏洞,研究人员也已经开发出了多种不同的利用技术来实施攻击,包括非法访问存储在 ...

  2. struts文件上传,获取文件名和文件类型

    struts文件上传,获取文件名和文件类型   Action中还有两个属 性:uploadFileName和uploadContentType,这两个属性分别用于封装上传文件的文件名.文件类型.这是S ...

  3. Java获取Web服务器文件

    Java获取Web服务器文件 如果获取的是服务器上某个目录下的有关文件,就相对比较容易,可以设定死绝对目录,但是如果不能设定死绝对目录,也不确定web服务器的安装目录,可以考虑如下两种方式: 方法一: ...

  4. ie下获取上传文件全路径

    ie下获取上传文件全路径,3.5之后的火狐是没法获取上传文件全路径的 /*获取上传文件路径*/ function getFilePath(obj) { var form = $(this).paren ...

  5. OpenFileDialog获取文件名和文件路径问题

    OpenFileDialog获取文件名和文件路径问题(转) 转自:http://blog.sina.com.cn/s/blog_7511914e0101cbjn.html System.IO.Path ...

  6. Greenplum获取表结构

    最近在折腾greenplum,遇到一个蛋疼的问题,那就是获取表结构,也就是建表语句.大家都知道在MySQL里面是非常easy的,show create table table_name 就搞定了,在g ...

  7. Android之获取string.xml文件里面的方法

    获取string.xml文件里面的方法 在此做个笔记: 1.在AndroidManifest.xml与layout等xml文件里: android:text="@string/resourc ...

  8. spring java 获取webapp下文件路径

    spring java 获取webapp下文件路径 @RequestMapping("/act/worldcup_schedule_time/imgdownload") @Resp ...

  9. java 获取classpath下文件多种方式

    java 获取classpath下文件多种方式 一:properties下配置 在resources下定义server.properties register.jks.path=classpath\: ...

随机推荐

  1. FFmpeg源代码简单分析:avformat_find_stream_info()

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...

  2. Android之获取屏幕的尺寸像素及获取状态栏标题栏高度

    在Android的实际开发中,会经常用到获取屏幕的尺寸的问题,以便设置一些布局在屏幕上的固定位置,从而适配各个屏幕的设备. 今天我就来讲一下怎么得到当前设备的屏幕像素吧: 一.在Activity中: ...

  3. UNIX网络编程——sockatmark函数

    每当收到一个带外数据时,就有一个与之关联的带外标记.这是发送进程发送带外字节时该字节在发送端普通数据流中的位置.在从套接字读入期间,接收进程通过调用sockatmark函数确定是否处于带外标记. #i ...

  4. 浅谈C++中的友元关系

    在封装中C++类数据成员大多情况是private属性:但是如果接口采用多参数实现肯定影响程序效率:然而这时候如果外界需要频繁访问这些私有成员,就不得不需要一个既安全又理想的"后门" ...

  5. L​i​n​u​x​下​配​置​T​o​m​c​a​t

    ***安装***   安装JDK chmod a+x jdk-1_5_0_06-linux-i586-rpm.bin ./jdk-1_5_0_06-linux-i586-rpm.bin 敲几次空格就O ...

  6. OJ题:句子逆转

    将一个英文语句以单词为单位逆序排放.例如"I am a boy",逆序排放后为"boy a am I"所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含 ...

  7. 多态&nbsp;OC——第十天

    1.多态  父类指针指向子类对象      没有继承就没有多态      联系前面知识才能清楚什么是多态,所以放到最后面总结小知识点,有前面的知识会对多态更好的了解,会觉得简单很多,但是看此篇博文需要 ...

  8. 【一天一道LeetCode】#48. Rotate Image

    一天一道LeetCode系列 (一)题目 You are given an n x n 2D matrix representing an image. Rotate the image by 90 ...

  9. hive语句嵌入python脚本(进行map和reduce,实现左外连接)

    在Hive语句中使用脚本(如python和shell)进行map和reduce:利用命令transform(或者指定map和reduce),配合加入的脚本文件add file 请看:http://ww ...

  10. Java之美[从菜鸟到高手演变]之设计模式四

    在阅读过程中有任何问题,请及时联系:egg. 邮箱:xtfggef@gmail.com 微博:http://weibo.com/xtfggef 转载请说明出处:http://blog.csdn.net ...