2009-03-04 10 views
8

J'ai été googling et ne peux pas trouver des exemples solides comment cela est fait, ou si cela peut même être fait. Je suppose que c'est possible. Est-ce que quelqu'un peut-il me montrer la bonne direction?Est-il possible d'utiliser le SDK TFS pour créer, mettre en file d'attente et suivre des builds?

Jusqu'ici j'ai regardé sous la documentation d'espace de noms de TFS sur msdn. Mon objectif est de pouvoir entièrement automatiser et suivre nos builds dans TFS à partir d'une application web intranet.

Répondre

12

Richard m'a orienté dans la bonne direction, donc Je vais répondre à ma propre question avec ce que j'ai trouvé. Oui, vous pouvez utiliser le SDK TFS pour créer, mettre en file d'attente et suivre les générations. Les interfaces/classes que vous souhaitez se trouvent dans l'espace de noms Microsoft.TeamFoundation.Build.Client. IBuildServer, IBuildDefinition et IBuildDetail sont particulièrement utiles.

TFS 2010 MISE À JOUR: Voici un exemple de programme à l'aide du SDK TFS 2010, a trouvé 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

Regardez tfsbuild.exe (dans le dossier .../Common9/IDE de l'installation VS).

Cette références assemblées Microsoft.TeamFoundation.Build.Client et Microsoft.TeamFoundation.Build.Common qui ont l'air utile, ... et qui contiennent namespaces ne sont pas documentées avec les autres assembliies caces TFS, mais sont sur MSDN ici http://msdn.microsoft.com/en-us/library/cc339575.aspx

+0

Merci, cela me conduit à la solution. – JimDaniel