Cómo: Personalizar números de versión de compilación

Actualización: noviembre 2007

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 versión de compilación.

Requisitos previos

Antes de crear la tarea para personalizar los números de versión de compilación, debe tener 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 panel 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 Cómo: Crear una definición de compilación.

    Nota importante:

    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, consulte Cómo: Crear un área de trabajo asignada y Cómo: 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 versión de compilación

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

Para personalizar el número de versión de compilación que se genera mediante 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 el resultado 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 DateTime[ P:System.DateTime.UtcNow] y Ticks para generar el número de versión 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 importante:

    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 Cómo: 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 Comando add y Comando checkin.

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 Cómo: Agregar un proyecto o una solución 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, consulte Cómo: Poner en cola o iniciar una definición de compilación.

    Puede ver el número de versión de compilación personalizado en Build Explorer. Para obtener más información, consulte Cómo: Supervisar el progreso de compilación.

Vea también

Otros recursos

Administrar compilaciones con Team Foundation Build

Personalizar Team Foundation Build