2009-03-04 4 views
8

Ho cercato su google e non riesco a trovare esempi concreti su come è fatto o se è possibile farlo. Presumo che possa. Qualcuno può indicarmi la giusta direzione?È possibile utilizzare l'SDK TFS per creare, accodare e tenere traccia delle build?

Finora ho cercato sotto la documentazione dello spazio dei nomi TFS su msdn. Il mio obiettivo è quello di essere in grado di automatizzare completamente e tracciare le nostre build in TFS da un'applicazione web intranet.

risposta

12

Richard mi ha segnalato nella giusta direzione, in modo da Ho intenzione di rispondere alla mia stessa domanda con quello che ho trovato.

Sì, è possibile utilizzare l'SDK TFS per creare, accodare e tenere traccia delle build. Le interfacce/classi desiderate si trovano nello spazio dei nomi Microsoft.TeamFoundation.Build.Client. IBuildServer, IBuildDefinition e IBuildDetail sono particolarmente utili.

TFS 2010 AGGIORNAMENTO: Ecco un esempio di programma utilizzando l'SDK TFS 2010, ha trovato 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

Vedere tfsbuild.exe (nella cartella .../Common9/IDE dell'installazione VS).

this fa riferimento assemblee Microsoft.TeamFoundation.Build.Client e Microsoft.TeamFoundation.Build.Common che sembrano utili, ... e contengono spazi dei nomi che non sono documentati con gli altri assembliies cienti TFS, ma sono su MSDN qui http://msdn.microsoft.com/en-us/library/cc339575.aspx

+0

Grazie, questo mi ha portato alla soluzione. – JimDaniel