2009-03-04 3 views
8

Я искал Google и не могу найти твердых примеров того, как это делается, или даже если это можно сделать. Я предполагаю, что это возможно. Может кто-то указать мне верное направление?Можно ли использовать TFS SDK для создания, очереди и дорожек?

До сих пор я искал документацию по пространству имен TFS на msdn. Моя цель - полностью автоматизировать и отслеживать наши сборки в TFS из веб-приложения интрасети.

ответ

12

Ричард указал мне в правильном направлении, так Я собираюсь ответить на свой вопрос тем, что нашел.

Да, вы можете использовать TFS SDK для создания, очереди и дорожек. Интерфейсы/классы, которые вы хотите, расположены в пространстве имен Microsoft.TeamFoundation.Build.Client. IBuildServer, IBuildDefinition и IBuildDetail особенно полезны.

TFS 2010 UPDATE: Ниже приведен пример программы с использованием SDK TFS 2010, найдено 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

Посмотрите файл tfsbuild.exe (в папке .../Common9/IDE установки VS).

Этого код сборка Microsoft.TeamFoundation.Build.Client и Microsoft.TeamFoundation.Build.Common, которые выглядят полезными, ... и содержат пространство имен, которые не описывались с другим Cient assembliies TFS, но находятся на MSDN здесь http://msdn.microsoft.com/en-us/library/cc339575.aspx

+0

Спасибо, это привело меня к решению. – JimDaniel

Смежные вопросы