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\: ...
随机推荐
- Android项目开发填坑记-Fragment的onAttach
背景 现在Android开发多使用一个Activity管理多个Fragment进行开发,不免需要两者相互传递数据,一般是给Fragment添加回调接口,让Activity继承并实现. 回调接口一般都写 ...
- Android必知必会-获取视频文件的截图、缩略图
背景 公司最近要求给我负责的APP加上视频录制和发布的功能,我简单的完成了基本的录制和视频压缩功能,后来发现发布接口需要上传视频的截图,网上搜索了一下资料,在这里整理一下. 代码实现 /** * 获取 ...
- 由源代码编译SpriteBuilder最新版本1.5.0搭配最新的Cocos2D 3.4.9
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 大家知道SpriteBuilder版本停留在1.4.9已经很久 ...
- sublime text的Ctrl+alt+up快捷键失效问题解决
上周一入职了新公司,安装了sublime text3 之后发现多行光标定位快捷键"Ctrl+alt+up|down"不能使用了.最后发现是快捷键冲突.我的电脑安装的是win7专业版 ...
- UNIX网络编程——客户/服务器程序设计示范(四)
TCP预先派生子进程服务器程序,accept使用线程上锁保护 我们使用线程上锁保护accept,因为这种方法不仅适用于同一进程内各线程之间的上锁,而且适用于不同进程之间的上锁. ...
- 后端分布式系列:分布式存储-HDFS 异常处理与恢复
在前面的文章 <HDFS DataNode 设计实现解析>中我们对文件操作进行了描述,但并未展开讲述其中涉及的异常错误处理与恢复机制.本文将深入探讨 HDFS 文件操作涉及的错误处理与恢复 ...
- Java中的this关键字
//Java中的this //this引用---->当前对象的引用 /* * 1.this在什么地方(非静态的)访问另外一个成员(非静态,可以是属性或者方法) * 前面都省略了this * 2. ...
- Ext JS 6应用程序Build后出现“c is not a constructor return new c(a[0])”的处理
概述 在对Ext JS 6的应用程序打包后,时不时会出现以下错误: 由于是压缩后出现的错误,要进行调试也无从下手,因而这个错误会令新手手足无措,不知道是怎么回事. 错误原因 造成该错误的主要原因是要创 ...
- Dynamics CRM 给视图配置安全角色
CRM2011后给表单设置了安全角色,可以配置实体表单给不同的安全角色查看,但视图的权限始终没有开放配置,这里介绍个工具可以实现这种配置. 先奉上2011/2013版本的工具地址(2015/2016见 ...
- 在golang中使用leveldb
leveldb是一个很强悍的kv数据库,自然,我也希望能在go中使用. 如果有官方的go leveldb实现,那我会优先考虑,譬如这个,但是该库文档完全没有,并且在网上没发现有人用于实战环境,对其能否 ...