Как получить список серверов Team Foundation Server, доступных на моем ПК? - PullRequest
2 голосов
/ 31 октября 2011

Мне нужно программно получить список Team Foundation Server с помощью C #.

Это необходимо для объекта TfsTeamProjectCollection.

Ответы [ 4 ]

8 голосов
/ 31 октября 2011

Я просмотрел документацию и не смог найти ничего полезного.Я считаю, что @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\
0 голосов
/ 06 января 2016

Чтобы вывести список всех рабочих пространств, которые будут возвращены «рабочими пространствами tf» (включая 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);
0 голосов
/ 15 августа 2013

Для Visual Studio 2012 расположение в разделе реестра:

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\TeamFoundation\Instances\tfs
0 голосов
/ 31 октября 2011

Я думаю, что ответственность за отслеживание серверов лежит на вас.Насколько я знаю, для серверов нет опций обнаружения.Итак, вам нужен Uris

...