如何获取PC上可用的Team Foundation Server服务器列表?
我需要使用C#以编程方式获取Team Foundation Server列表。
这是TfsTeamProjectCollection
对象所必需的。
我扫描了文档,找不到任何有用的东西。 我相信@samy是正确的,没有发现机制。
但是,如果您在已与TFS建立连接的客户端计算机上运行此操作,则存在注册表中存储的服务器历史记录:
Visual Studio 2008位置:
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\TeamFoundation\Servers
Visual Studio 2010:
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\TeamFoundation\Instances\
Visual Studio 2012
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\TeamFoundation\Instances\
Visual Studio 2013
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\TeamFoundation\Instances\
Visual Studio 2015
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\TeamFoundation\Instances\
我认为跟踪服务器的责任是你的责任。 据我所知,服务器没有发现选项。 所以你需要uris
对于Visual Studio 2012,注册表项中的位置是:
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\TeamFoundation\Instances\tfs
列出“tf workspaces”将返回的所有工作空间(包括URI和映射路径):
var allWorkspaceInfos = Workstation.Current.GetAllLocalWorkspaceInfo();
要获取包含特定目录的TFS工作空间:
var workspaceInfo = Workstation.Current.GetLocalWorkspaceInfo(@"C:\Users\joey\tfs");
我通过反编译TF.exe找到了这个。 但是有Workstation类的文档。
这些方法返回WorkspaceInfo对象。 要执行源代码管理操作,您需要连接到服务器并获取Workspace对象:
var collection = new TfsTeamProjectCollection(workspaceInfo.ServerUri); collection.Authenticate(); var server = collection.GetService(); var workspace = server.GetWorkspace(scriptRoot);