¿Cómo puedo abrir la vista de diálogo de detalles del conjunto de cambios de TFS con un complemento de Visual Studio?

StackOverflow https://stackoverflow.com/questions/8891089

Pregunta

Tengo un artefacto específico en TFS, digamos conjunto de cambios "123", que tiene el URI "vstfs: /// VersionControl / Changeset / 123" . Me di cuenta de que el enlace " http: / /tfs:8080/tfs/web/UI/Pages/Scc/ViewChangeset.aspx?changeset=123 " abrirá la vista detallada del conjunto de cambios utilizando el navegador web.

Lo que me gustaría hacer es abrir la vista detallada del conjunto de cambios dentro de Visual Studio. El lugar donde estoy incrustando esto es una sección personalizada dentro del resumen de compilación. Implementé esta sección personalizada como un complemento de VisualStudio. Aquí hay una imagen:

ingrese la descripción de la imagen aquí

La sección "Versión de compilación" está hecha a medida y proporcionará información sobre un correo electrónico que se enviará a todos, una vez que se publique dicha compilación.

El conjunto de cambios 627 dentro de esta sección es un control de botón que se ha transformado automáticamente en un enlace. El "Click" -Handler detrás del botón funciona. El código actualmente tiene este aspecto:

...
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;
...

Este código abrirá una nueva pestaña del navegador y mostrará la página correcta. Sin embargo, me gustaría que abriera el detalle del conjunto de cambios dentro de Visual Studio. Al igual que lo hace el botón en la parte inferior de la sección "Conjuntos de cambios asociados". Al hacer clic en el enlace "Conjunto de cambios 627", se abrirá ese conjunto de cambios dentro de Visual Studio.

EDITAR 1

Puede ser un poco más claro cuál es exactamente el resultado deseado, si publico una imagen del mismo. La ventana "Detalles del conjunto de cambios" es lo que me gustaría abrir usando la API.

ingrese la descripción de la imagen aquí

¿Fue útil?

Solución

Eche un vistazo a las siguientes publicaciones del blog:

Básicamente, necesita referencias a los siguientes ensamblados:

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

Luego, puede usar VersionControlExt.ViewChangesetDetails(int changesetId) para mostrar un conjunto de cambios específico de su complemento:

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

Esto abre un cuadro de diálogo que muestra al usuario todos los detalles sobre un conjunto de cambios en particular. (Es el mismo cuadro de diálogo que aparece si el usuario selecciona "Detalles ..." en el cuadro de diálogo "Buscar conjuntos de cambios").

Otros consejos

En VS 2015 puede usar el siguiente código tomado de aquí

public void ViewChangesetDetails(int changesetId)
{
        ITeamExplorer teamExplorer = this.GetService<ITeamExplorer>();
        if (teamExplorer != null)
        {
            teamExplorer.NavigateToPage(new Guid(TeamExplorerPageIds.ChangesetDetails), changesetId);
        }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top