Можно ли использовать TFS SDK для создания, очереди и отслеживания сборок? - PullRequest
8 голосов
/ 04 марта 2009

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

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

Ответы [ 2 ]

12 голосов
/ 05 марта 2009

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

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

ОБНОВЛЕНИЕ TFS 2010: Вот пример программы, использующей TFS 2010 SDK, найден здесь :

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 голосов
/ 04 марта 2009

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

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

...