如何在脱机时以编程方式查明本地文件是否在TFS版本控制下

Isa*_*avo 5 c# tfs

我有一个小的内部视觉工作室扩展(VS 2013),对于一个功能,我需要弄清楚磁盘上的文件是否在TFS版本控制之下.

(通过"在TFS版本控制下",我的意思是TFS跟踪有问题的文件,以便可以检出,编辑,签入等)

以下代码是我今天所拥有的,只要您连接到TFS,它就可以正常工作.它使用工作区的实例

// m_workspace is of type Microsoft.TeamFoundation.VersionControl.Client.Workspace
var items = m_workspace.GetItems(
              new[] {new ItemSpec(filename, RecursionType.None)}, 
              DeletedState.Any, 
              ItemType.Any,
              false, 
              GetItemsOptions.LocalOnly | GetItemsOptions.Unsorted);
return items.First().Items.Any();
Run Code Online (Sandbox Code Playgroud)

现在,问题是当您不在办公室防火墙内(或通过VPN连接)时,无法访问TFS服务器.实际上,主机名甚至都不会解析.

所以我的问题是:有没有其他方法让我知道文件是否受版本控制?最好使用公共API,但如果这就是它需要的话,我很好用一个丑陋的黑客...

小智 -1

你可以使用这个:

   string underTfs = Microsoft.TeamFoundation.VersionControl.Client.Workstation.Current.IsMapped(path);
Run Code Online (Sandbox Code Playgroud)