Compartir a través de


Personalizar números de compilación

En este tema, se describe cómo personalizar los números de compilación cuando se utiliza la plantilla de actualización. Para obtener más información sobre la Plantilla de actualización, vea Definir una compilación con la plantilla de actualización. Puede realizar este procedimiento más fácilmente mediante la Plantilla predeterminada. Para obtener más información, vea Definir una compilación con la plantilla predeterminada.

Puede personalizar Team Foundation Build creando sus propias tareas personalizadas y ejecutándolas durante una compilación. En este tema se explican los pasos que debe seguir para personalizar una definición de compilación de Team Foundation Build con una tarea que genera números de compilación.

Requisitos previos

Antes de crear la tarea para personalizar los números de compilación, asegúrese de que tiene lo siguiente:

  • Acceso al archivo TFSBuild.proj de la definición de compilación que desea personalizar.

    El archivo TFSBuild.proj puede estar asociado a varias definiciones de compilación. Para determinar la ubicación de control de código fuente del archivo TFSBuild.proj, seleccione la definición de compilación en la carpeta Builds en Team Explorer, haga clic con el botón secundario del mouse en ella y, a continuación, haga clic en Editar. La ubicación de control de código fuente del archivo TFSBuild.proj se muestra en el recuadro Archivo de proyecto del cuadro de diálogo Definición de compilación. De forma predeterminada, el archivo TFSBuild.proj se encuentra en la carpeta $/miProyectoDeEquipo/TeamBuildTypes/miNombreDeCompilación en control de versiones de Team Foundation. miProyectoDeEquipo es el nombre del proyecto de equipo y es el nodo raíz de todos los orígenes del proyecto de equipo. miNombreDeCompilación es el nombre que asignó a la primera definición de compilación asociada al archivo TFSBuild.proj. Para obtener más información sobre cómo crear tipos de compilación de Team Foundation Build, vea Crear una definición de compilación básica.

    Nota importanteImportante

    Cuando se personaliza el archivo TFSBuild.proj, se personalizan todas las definiciones de compilación asociadas a dicho archivo.

  • Área de trabajo local que contiene los archivos del proyecto de equipo y los archivos de generación en el equipo local.

    Para obtener más información, vea Crear un archivo de área de trabajo y obtener archivos y Obtener el código fuente para el proyecto de equipo.

  • Permisos necesarios

Para realizar esta tarea, debe tener los permisos Administrar una generación y Administrar áreas de trabajo establecidos en Permitir. También debe tener los permisos Proteger y Desproteger establecidos en Permitir. Para obtener más información, vea Permisos de Team Foundation Server.

Escribir la tarea del número de compilación

Para escribir la tarea, puede implementar la interfaz ITask directamente o derivar la clase de una clase auxiliar Task. ITask se define en el ensamblado Microsoft.Build.Framework.dll y Task se define en el ensamblado Microsoft.Build.Utilitites.dll.

Para personalizar el número de compilación generado por Team Foundation Build, debe insertar la tarea en el destino BuildNumberOverrideTarget. BuildNumberOverrideTarget requiere una propiedad de salida denominada BuildNumber. El atributo Output indica que la propiedad es la salida de la tarea personalizada. Para obtener más información acerca de los destinos de Team Foundation Build, vea Destinos personalizables de Team Foundation Build.

Para escribir una tarea personalizada

  1. Cree una biblioteca de clases de Visual C# denominada MyTask que contenga la tarea personalizada.

    Para obtener más información, vea Clases de componentes.

  2. En el menú Proyecto, haga clic en Agregar referencia y seleccione Microsoft.Build.Framework y Microsoft.Build.Utilities en el cuadro de diálogo Agregar referencia.

  3. Inserte el código siguiente en el archivo class.cs.

    Este ejemplo hereda de la clase auxiliar Task y utiliza las propiedades DateTimeUtcNow y Ticks para generar el número de compilación.

    using System;
    using Microsoft.Build.Utilities;
    using Microsoft.Build.Framework;
    
    namespace BuildNumberGenerator
    {
        public class BuildNumberGenerator:Task
        {
            public override bool Execute()
            {            
                m_buildNumber = DateTime.UtcNow.Ticks.ToString();
                return true;
            }
            private string m_buildNumber;
    
            [Output]
            public string BuildNumber
            {
                get { return m_buildNumber; }
            }
        }
    }
    
  4. Genere la biblioteca de clases para producir MyTask.dll.

  5. Copie el archivo DLL generado en la carpeta del área de trabajo local que también contiene el archivo TFSBuild.proj de la definición de compilación.

    Nota importanteImportante

    Debe asignar la ubicación de control de código fuente del archivo TFSBuild.proj al área de trabajo local antes de que exista esta estructura de directorios en el equipo cliente. Para obtener más información, consulte Obtener el código fuente para el proyecto de equipo.

    Si el archivo TFSBuild.proj se ha almacenado en la carpeta predeterminada del control de código fuente, la copia local del archivo se encuentra en <raíz>:\Área de trabajo local\TeamBuildTypes\miNombreDeCompilación en el equipo cliente. Área de trabajo local es la carpeta local a la que se asigna el proyecto de equipo, miProyectoDeEquipo es el nombre del proyecto de equipo y miNombreDeCompilación es el nombre que asignó a la primera definición de compilación asociada a este archivo TFSBuild.proj.

Agregar el archivo DLL al control de código fuente

Después de crear el archivo DLL que contiene la tarea personalizada, debe agregarlo a control de versiones de Team Foundation. Puede utilizar los comandos tf add y tf checkin para agregar y proteger el archivo DLL en la misma ubicación que el archivo TFSBuild.proj de la definición de compilación. Para obtener más información, consulte Add (Comando) y Checkin (Comando).

Para agregar y proteger el ensamblado

  1. Haga clic en Inicio, elija Todos los programas, Microsoft Visual Studio 9.0, Visual Studio Tools y, a continuación, haga clic en Símbolo del sistema de Visual Studio 2008. Abra el área de trabajo local asignada al proyecto de equipo que contiene el tipo de generación que desea personalizar.

    Por ejemplo, escriba lo siguiente en el símbolo del sistema.

    > cd c:\MyTeamProject

    Donde MyTeamProject es el nombre del proyecto de equipo.

  2. Desplácese a la ubicación en la que está almacenado el archivo TFSBuild.proj.

    Por ejemplo, escriba lo siguiente en el símbolo del sistema.

    c:\MyTeamProject>cd TeamBuildTypes\MyBuildName

    Donde MyBuildName es el nombre de la definición de compilación.

  3. Para agregar el archivo a control de versiones de Team Foundation, escriba el siguiente comando.

    c:\MyTeamProject\TeamBuildTypes\MyBuildName> tf add MyTask.dll

  4. Para proteger el archivo en el tipo de control de versiones de Team Foundation, escriba el siguiente comando.

    c:\MyTeamProject\TeamBuildTypes\MyBuildName> tf checkin MyTask.dll

    También puede utilizar Team Explorer para agregar el archivo DLL a control de versiones de Team Foundation. Para obtener más información, consulte Agregar archivos al control de versiones.

Registrar la tarea

Después de crear la tarea, debe registrarla especificándola en un elemento UsingTask del archivo TFSBuild.proj. El elemento UsingTask asigna la tarea al ensamblado que contiene la implementación de la tarea. Para obtener más información, vea Elemento UsingTask (MSBuild).

Para registrar la tarea modificando el archivo TFSBuild.proj

  1. Inicie Visual Studio.

  2. Desproteja el archivo TFSBuild.proj que desea modificar desde control de versiones de Team Foundation y ábralo en el editor XML de Visual Studio.

  3. Agregue el elemento UsingTask al archivo TFSBuild.proj inmediatamente detrás de la instrucción de importación.

    <UsingTask 
        TaskName="BuildNumberGenerator.BuildNumberGenerator" 
        AssemblyFile="MyTask.dll"/>
    
  4. Para insertar la tarea en el destino BuildNumberOverrideTarget, agregue el código XML siguiente, incluido dentro de las etiquetas <Target></Target>, al final del archivo TFSBuild.proj.

    </ItemGroup>
      <Target Name = "BuildNumberOverrideTarget" >
        <BuildNumberGenerator> 
        <Output TaskParameter="BuildNumber" PropertyName="BuildNumber"/> 
        </BuildNumberGenerator> 
      </Target>
    </Project>
    
  5. Haga clic en Archivo y en Guardar para guardar los cambios y, a continuación, cierre TFSBuild.proj.

    Nota

    Recibirá advertencias del esquema XML después de realizar estos cambios en el archivo TFSBuild.proj. Puede omitir sin ningún riesgo esas advertencias.

  6. Proteja de nuevo TFSBuild.proj en el control de código fuente.

  7. Después de modificar el archivo TFSBuild.proj y guardar los cambios en control de versiones de Team Foundation, ejecute la definición de compilación.

    Para obtener más información, vea Poner en cola una compilación.

    Puede ver el número de compilación personalizado en el Explorador de compilaciones. Para obtener más información, vea Supervisar el progreso de una compilación en ejecución.

Vea también

Conceptos

Definir una compilación con la plantilla de actualización

Definir una compilación con la plantilla predeterminada

Otros recursos

Compilar la aplicación