8

私はグーグルしてきましたが、これがどのように行われるのか、あるいはそれが可能であるかどうかについての確かな例を見つけることができません。できると思います。誰かが私を正しい方向に向けることができますか?

これまで、msdnのTFS名前空間のドキュメントを調べてきました。私の目標は、イントラネットWebアプリケーションからTFSのビルドを完全に自動化して追跡できるようにすることです。

4

2 に答える 2

12

リチャードは正しい方向を示してくれたので、私が見つけたもので自分の質問に答えます。

はい、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);
        }
    }
}
于 2009-03-04T21:09:41.060 に答える