使用C#从TFS获取最新版本
来源:互联网 发布:天际原版捏脸数据 编辑:程序博客网 时间:2024/04/20 16:22
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-->
0 0
- 使用C#从TFS获取最新版本
- 从TFS获取指定日期后的最新版本文件
- 用poweshell从TFS获取最新代码,并提交到SVN服务器上
- 使用Git获取最新版本到本地
- Git中从远程的分支获取最新的版本
- eclipse git 从远程库获取最新版本,覆盖本地文件
- ireport 获取最新版本
- 从友盟获取自己软件最新版本的版本名称
- C# 获取最新文件
- paip. VS2010版本控制tfs使用总结
- cocopods最新版本使用
- 使用C#获取Windows版本(源码)
- 使用C#获取服务器IIS版本
- 使用C#获取服务器IIS版本
- TFS API: 获取自定义查询--使用QueryHierarchy
- TFS API: 获取自定义查询--使用QueryHierarchy
- TFS 从标签拉版本和多个目录标签
- 集中式版本控制系统:从svn到tfs
- Matika版OpenStack伪生产环境部署-Glance
- 林达华推荐的几本数学书
- 笔记____关于网络请求中需要传同名参数的问题
- 51NOD 1179 最大的最大公约数
- Android显示assets目录下的图片
- 使用C#从TFS获取最新版本
- 配置linux虚拟机本地yum源
- S number(2016黑龙江省赛J题)
- 浅谈Handler机制
- java-swing-设置窗体大小
- Shell bash 脚本语法
- MySQL数据库中的多表数据记录查询
- linux虚拟网桥的构建和WAN的连接
- 透过 Linux 内核看无锁编程