如何在我的PC上获得可用的Team Foundation Server服务器列表?
本文关键字:Foundation Team Server 服务器 列表 我的 PC | 更新日期: 2023-09-27 18:12:45
我需要用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'
我认为跟踪服务器的责任是你的责任。据我所知,服务器没有发现选项。所以需要uri
对于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<VersionControlServer>();
var workspace = server.GetWorkspace(scriptRoot);