¿Es posible usar el SDK de TFS para crear, poner en cola y rastrear compilaciones?

StackOverflow https://stackoverflow.com/questions/611485

  •  03-07-2019
  •  | 
  •  

Pregunta

He estado buscando en Google y no puedo encontrar ningún ejemplo sólido de cómo se hace esto, o si incluso se puede hacer. Supongo que puede. ¿Alguien puede señalarme en la dirección correcta?

Hasta ahora he estado buscando en la documentación del espacio de nombres TFS en msdn. Mi objetivo es poder automatizar completamente y rastrear nuestras compilaciones en TFS desde una aplicación web de intranet.

¿Fue útil?

Solución

Richard me señaló en la dirección correcta, así que voy a responder mi propia pregunta con lo que he encontrado.

Sí, puede usar el SDK de TFS para crear, poner en cola y rastrear compilaciones. Las interfaces / clases que desea se encuentran en el espacio de nombres Microsoft.TeamFoundation.Build.Client. IBuildServer, IBuildDefinition e IBuildDetail son particularmente útiles.

ACTUALIZACIÓN DE TFS 2010: Aquí hay un programa de ejemplo que utiliza el SDK de TFS 2010, encontrado aquí :

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);
        }
    }
}

Otros consejos

Mire tfsbuild.exe (en la carpeta ... / Common9 / IDE de la instalación VS).

Esto hace referencia a ensamblados Microsoft.TeamFoundation.Build.Client y Microsoft.TeamFoundation.Build.Common que parecen útiles, ... y contienen espacios de nombres que no están documentados con los otros ensamblados de clientes de TFS, pero están en MSDN aquí http://msdn.microsoft .com / es-es / biblioteca / cc339575.aspx

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top