2009-03-04 9 views
8

He estado buscando en Google y no encuentro ningún ejemplo sólido de cómo se hace esto, o si puede hacerse. Supongo que puede. ¿Alguien puede señalarme en la dirección correcta?¿Es posible usar el TFS SDK para crear, poner en cola y seguir compilaciones?

Hasta ahora he estado buscando en la documentación del espacio de nombres TFS en msdn. Mi objetivo es poder automatizar y seguir completamente nuestras construcciones en TFS desde una aplicación web de intranet.

Respuesta

12

Richard me señaló en la dirección correcta, por lo Voy a responder mi propia pregunta con lo que he encontrado.

Sí, puede usar el SDK de TFS para crear, hacer cola y crear pistas. Las interfaces/clases que desea están ubicadas en el espacio de nombres Microsoft.TeamFoundation.Build.Client. IBuildServer, IBuildDefinition e IBuildDetail son particularmente útiles.

TFS 2010 ACTUALIZACIÓN: He aquí un ejemplo de programa utilizando el SDK de TFS 2010, que se encuentra here:

using System; 
using System.Collections.Generic; 
using Microsoft.TeamFoundation.Build.Client; 
using Microsoft.TeamFoundation.Build.Workflow; 
using Microsoft.TeamFoundation.Client; 

namespace ManageBuildTemplates 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      TfsTeamProjectCollection collection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://jpricket-test:8080/tfs/collection0")); 
      IBuildServer buildServer = collection.GetService<IBuildServer>(); 

      IBuildDefinition definition = buildServer.GetBuildDefinition("UnitTests", "Definition1"); 

      IBuildRequest request = definition.CreateBuildRequest(); 
      request.ProcessParameters = UpdateVerbosity(request.ProcessParameters, BuildVerbosity.Diagnostic); 

      buildServer.QueueBuild(request); 
     } 

     private static string UpdateVerbosity(string processParameters, BuildVerbosity buildVerbosity) 
     { 
      IDictionary<String, Object> paramValues = WorkflowHelpers.DeserializeProcessParameters(processParameters); 
      paramValues[ProcessParameterMetadata.StandardParameterNames.Verbosity] = buildVerbosity; 
      return WorkflowHelpers.SerializeProcessParameters(paramValues); 
     } 
    } 
} 
3

Mire tfsbuild.exe (en la carpeta .../Common9/IDE de la instalación de VS).

Esto hace referencia a las asambleas Microsoft.TeamFoundation.Build.Client y Microsoft.TeamFoundation.Build.Common que parecen útiles, ... y contienen espacios de nombres que no están documentadas con los otros assembliies cientes TFS, pero están en MSDN aquí http://msdn.microsoft.com/en-us/library/cc339575.aspx

+0

Gracias, esto me llevó a la solución. – JimDaniel

Cuestiones relacionadas