Как открыть диалоговое окно сведений о наборах изменений TFS с помощью надстройки Visual Studio? - PullRequest
10 голосов
/ 17 января 2012

У меня есть определенный артефакт в TFS, скажем, changeset "123", который имеет URI "vstfs: /// VersionControl / Changeset / 123" .Я понял, что ссылка "http://tfs:8080/tfs/web/UI/Pages/Scc/ViewChangeset.aspx?changeset=123" откроет подробный вид набора изменений с помощью веб-браузера.

Я хотел бы открыть подробный вид набора изменений в Visual Studio.место, куда я встраиваю, это пользовательский раздел внутри сводки сборки. Я реализовал этот пользовательский раздел как плагин VisualStudio. Вот картинка:

enter image description here

Раздел «Выпуск сборки»"выполнен по индивидуальному заказу и предоставит информацию об электронном письме, которое будет отправлено всем, как только будет выпущена такая сборка.

Changeset 627 внутри этого раздела представляет собой элемент управления Button, который автоматически преобразуется в ссылку. "Click" -Handler за кнопкой работает. Код в настоящее время выглядит следующим образом:

...
string link = buildDetailView.TeamProjectCollection.Uri.AbsoluteUri.Substring(0, buildDetailView.TeamProjectCollection.Uri.AbsoluteUri.LastIndexOf('/'));
link += "/web/UI/Pages/Scc/ViewChangeset.aspx?changeset=";
link += ((Button)sender).Content;

Process.Start(new ProcessStartInfo(link));
e.Handled = true;
...

Этот код откроет новую вкладку браузера и покажет правильную страницу. Однако я хотел бы открыть егоподробности набора изменений в Visual Studio. Так же, как кнопка внизу в разделе «Связанные наборы изменений». При нажатии нассылка «Набор изменений 627», откроет этот набор изменений в Visual Studio.

РЕДАКТИРОВАТЬ 1

Может быть немного яснее, каков именно желаемый результат, если яопубликовать фотографию этого.Окно «Changeset Details» - это то, что я хотел бы открыть с помощью API.

enter image description here

Ответы [ 2 ]

14 голосов
/ 17 января 2012

Посмотрите на следующие сообщения в блоге:

По сути, вам нужны ссылки на следующие сборки:

 Microsoft.TeamFoundation.Client
 Microsoft.TeamFoundation.VersionControl.Client
 Microsoft.TeamFoundation.VersionControl.Controls
 Microsoft.VisualStudio.TeamFoundation
 Microsoft.VisualStudio.TeamFoundation.Client
 Microsoft.VisualStudio.TeamFoundation.VersionControl

Затем вы можете использовать VersionControlExt.ViewChangesetDetails(int changesetId) для отображения определенного набора изменений из вашей надстройки:

VersionControlExt vce;
vce = _applicationObject.GetObject("Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt") as VersionControlExt;
vce.ViewChangesetDetails(changesetId);

Это вызывает диалог, который показывает пользователю все подробности о конкретном наборе изменений. (Это то же самое диалоговое окно, которое появляется, если пользователь выбирает «Детали ...» в диалоговом окне «Поиск наборов изменений».)

0 голосов
/ 23 мая 2017

В VS 2015 вы можете использовать следующий код, взятый из здесь

public void ViewChangesetDetails(int changesetId)
{
        ITeamExplorer teamExplorer = this.GetService<ITeamExplorer>();
        if (teamExplorer != null)
        {
            teamExplorer.NavigateToPage(new Guid(TeamExplorerPageIds.ChangesetDetails), changesetId);
        }
}
...