c# – 以编程方式将文件检入TFS的次数超出预期
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 以编程方式将文件检入TFS的次数超出预期,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1884字,纯文字阅读大概需要3分钟。
内容图文
![c# – 以编程方式将文件检入TFS的次数超出预期](/upload/InfoBanner/zyjiaocheng/806/fac2f4c5a2da453c99c3cd26d407dd8c.jpg)
所以我有一个.NET应用程序,它通过并生成一系列文件,将它们输出到本地目录,然后确定是否需要更新现有文件或将新文件添加到TFS(Team Foundation Server)项目中.
我在本地计算机上有一个工作区,并且有10个不同的工作文件夹,这些是我从这台特定机器处理过的其他编码项目.当我去检查文件是否已存在于TFS项目中并且需要更新或是否需要作为新文件添加到项目时,我的问题就发生了.
snipet:
static string TFSProject = @"$/SQLScripts/"; static WorkspaceInfo wsInfo; static VersionControlServer versionControl; static string argPath = "E:\\SQLScripts\\"; wsInfo = Workstation.Current.GetLocalWorkspaceInfo(argPath); TeamFoundationServer tfs = new TeamFoundationServer(wsInfo.ServerUri.AbsoluteUri); versionControl = (VersionControlServer)tfs.GetService(typeof(VersionControlServer)); Workspace workspace = versionControl.GetWorkspace(wsInfo); workspace.GetLocalItemForServerItem(TFSProject);
此时我检查文件是否存在,我做了两件事之一.如果文件存在,那么我将文件标记为EDIT然后我将文件写入本地目录,否则我将首先编写脚本然后将文件添加到工作区.我不在乎物理文件是否与我生成的文件相同,因为我这样做是为了追踪SAS70“追踪变化”的要求
如果它存在我做:
workspace.PendEdit(文件名,RecurisionType.Full);
scriptoutthefile(文件名);
或者如果它不存在
scriptoutthefilename(文件名);
workspace.PendAdd(文件名,TRUE);
好的,所有这一切都可以解决问题.当我去检查针对PROJECT的挂起更改时,我获得了工作区中本地计算机上所有项目的所有挂起更改.
// Show our pending changes. PendingChange[] pendingChanges = workspace.GetPendingChanges(); foreach (PendingChange pendingChange in pendingChanges) { dosomething... }
我认为通过将工作空间设置为workspace.GetLocalItemForServerItem(TFSProject),它将仅为我提供该特定工作文件夹的对象.
如果有办法强制工作区对象只处理特定的工作文件夹?
这有什么意义吗?提前致谢…
解决方法:
使用LINQ,您可以获取特定文件夹的挂起更改
PendingChange[] pendingChanges = workspace
.GetPendingChanges()
.Where(x => x.LocalOrServerFolder.Contains(argPath))
.ToArray();
内容总结
以上是互联网集市为您收集整理的c# – 以编程方式将文件检入TFS的次数超出预期全部内容,希望文章能够帮你解决c# – 以编程方式将文件检入TFS的次数超出预期所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。