teamfoundationserver microsoft extendedclient c# api tfs

c# - extendedclient - microsoft teamfoundationserver client



¿Cómo enumerar los archivos de un proyecto de equipo usando tfs api? (2)

Aquí es cómo he descubierto cómo hacer una lista de todos los archivos de un proyecto TFS:

Agregue Microsoft.TeamFoundation.Client y Microsoft.TeamFoundation.VersionControl.Client como referencia a su proyecto.

Agregue un uso para Microsoft.TeamFoundation.Client y Microsoft.TeamFoundation.VersionControl.Client

TeamFoundationServer server = new TeamFoundationServer("server"); VersionControlServer version = server.GetService(typeof(VersionControlServer)) as VersionControlServer; ItemSet items = version.GetItems(@"$/ProjectName", RecursionType.Full); ItemSet items = version.GetItems(@"$/ProjectName/FileName.cs", RecursionType.Full); foreach (Item item in items.Items) { System.Console.WriteLine(item.ServerItem); }

El segundo GetItems restringirá los elementos encontrados a los de un nombre de archivo específico. Solo tengo este ejemplo que muestra la ruta del servidor para todos los archivos encontrados.

Me pregunto si hay una manera para mí de listar todos los ''archivos'' incluidos en un proyecto del equipo tfs. Lo que pretendo hacer es buscar archivos de un nombre particular que no tengan rutas fijas dentro de TFS causadas por la bifurcación ($ / MyTeamProject / Main / Build / instruction.xml y $ / MyTeamProject / Branches / Release_1.0). Una vez que se encuentre un archivo, me gustaría manipularlo.

Supongo que estamos hablando de elementos cuando se trata de entidades incluidas en un proyecto de equipo y no de archivos tradicionales y, por lo tanto, esto puede ser un poco complicado.

He visto algunas muestras para manipular un archivo, pero todas las muestras hasta ahora tienen rutas fijas.


Esta no es una respuesta diferente, sino simplemente una actualización del código de Vengafoo. La clase TeamFoundationServer está obsoleta en 2011 (no estoy seguro de cuándo sucedió esto, solo sé que está obsoleta a partir de ahora). El código de Vengafoo es de 2009, así que tiene sentido. Utilice la clase TfsTeamProjectCollection con la clase de fábrica TfsTeamProjectCollectionFactory.

Aquí está la actualización, solo una línea de cambio:

//TeamFoundationServer server = new TeamFoundationServer("server"); TfsTeamProjectCollection server = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfsServerURI:8080/tfs/")); VersionControlServer version = server.GetService(typeof(VersionControlServer)) as VersionControlServer; ItemSet items = version.GetItems(@"$/ProjectName", RecursionType.Full); //ItemSet items = version.GetItems(@"$/ProjectName/FileName.cs", RecursionType.Full); foreach (Item item in items.Items) { System.Console.WriteLine(item.ServerItem); }