Получить текущее соединение TFS в надстройке Visual Studio

Я работаю над надстройкой Visual Studio 2010 и пытаюсь понять, как определить подключенный в данный момент сервер TFS. Я предполагаю, что мне нужно использовать DTE, но у меня спазм мозга, чтобы понять, где получить информацию.


person Robaticus    schedule 27.07.2010    source источник
comment
Похоже, вы на самом деле пишете пакет, а не надстройку. Да?   -  person Kate Gregory    schedule 08.08.2010
comment
Я думал пакет как набор надстроек? это первое расширение, которое я выполнил в 2010 году, поэтому я могу быть немного сбит с толку.   -  person Robaticus    schedule 08.08.2010
comment
любое решение для получения подключения TFS в надстройке?   -  person Kiquenet    schedule 13.07.2011
comment
Спасибо, братан, я бы целую вечность искал это   -  person Jason    schedule 03.12.2012
comment
Большое спасибо! Сэкономил мне много часов.   -  person Marian Zagoruiko    schedule 10.10.2013


Ответы (2)


Я предлагаю вам проверить метод Microsoft.TeamFoundation.VersionControl.Client.Workstation.GetLocalWorkspaceInfo, в результате у вас есть объект и доступ к ServerUri property

См. эту документацию на MSDN для более подробной информации.

person Aghilas Yakoub    schedule 26.11.2013

Робатикус изначально отредактировал вопрос с решением. Преобразовал его в ответ сообщества Wiki:

На самом деле, я, возможно, нашел ответ, который я взял из пары мест.

var dte = Package.GetGlobalService(typeof(EnvDTE.DTE)) as EnvDTE.DTE;

TeamFoundationServerExt ext = dte.GetObject("Microsoft.VisualStudio.TeamFoundation.TeamFoundationServerExt") as TeamFoundationServerExt;

TeamFoundationServer tfs = new TeamFoundationServer(ext.ActiveProjectContext.DomainUri);
VersionControlServer vcs = tfs.GetService<VersionControlServer>();

var changes = vcs.GetPendingChanges(null);
person Community    schedule 11.05.2015