Personalizar la plantilla de proceso de compilación

Si necesita el proceso de compilación para algo más de lo que puede hacer la plantilla predeterminada, puede personalizar la plantilla de proceso de compilación para seguir sus propias instrucciones de Windows Workflow Foundation (WWF). Las instrucciones pueden ejecutar el código de .NET Framework que se implementa en los objetos de CodeActivity. Puede ejecutar las actividades integradas en Team Foundation Build (TFBuild), las que ofrecen terceros o, si es necesario, las que usted mismo haya compilado.

Sugerencia

Si la funcionalidad del proceso de compilación personalizado puede codificarse en un archivo por lotes de Windows o un script de PowerShell, puede cargar el script y ejecutarlo como parte del proceso de compilación.Este enfoque podría ser más rápido y más sencillo que crear un proceso de compilación personalizado.Consulta Ejecutar un script en el proceso de compilación.

  • Iniciar una solución de proceso de compilación personalizada y crear una plantilla

  • Usar una plantilla personalizada en la definición de compilación

  • Obtener respuestas a preguntas comunes

Iniciar una solución de proceso de compilación personalizada y crear una plantilla

Antes de implementar las instrucciones, extraiga una copia de la plantilla predeterminada del servidor de Team Foundation Server y agréguela a un proyecto de código de Visual Basic.

Importante

¿Trabaja en un Icono de Gitproyecto de equipo de Git?¿Tiene previsto cargar archivos binarios de actividad del proceso de compilación?Si es así, el almacenamiento de los archivos binarios (especialmente muchas revisiones de archivos grandes) puede aumentar el tamaño del repositorio de Git.Le recomendamos que almacene los archivos binarios personalizados del proceso de compilación en un repositorio que sea independiente del código desde el que se compila la aplicación.Puede crear un proyecto de equipo diferente para los procesos de compilación o también puede crear un repositorio adicional en el proyecto de equipo existente.

  1. Conéctese (teclado: CTRL + 0, C) al proyecto de equipo (y, si es necesario, al Icono de Git repositorio de Git) donde piensa almacenar el origen del proceso de compilación.

  2. Cree un nuevo proyecto de código (teclado: Ctrl + Mayús + N).

    En concreto, cree una nueva solución (por ejemplo, BuildProcessSource) que contenga un nuevo proyecto de código de biblioteca de actividades de flujo de trabajo de Visual Basic (por ejemplo, Templates). Agregue la solución a un nuevo directorio bajo control de versiones, en una ubicación fácil de encontrar.

    Icono de TFVC Ejemplo de TFVC: C:\Users\YourName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\

    Icono de Git Ejemplo de Git: C:\Users\YourName\Source\Repos\BuildProcesses\

    Crear un proyecto de código que contenga la nueva plantilla

    ¿Por qué necesito un proyecto de código para editar mi plantilla?

  3. En la página de compilaciones (teclado: Ctrl + 0, B), cree o edite una definición de compilación.

    Nueva definición de compilación o Editar definición de compilación

  4. Descargue una copia de la plantilla predeterminada. Guarde la nueva plantilla en la misma carpeta que contiene el proyecto de código que creó anteriormente en este procedimiento.

    Icono de TFVC Ejemplo de TFVC: C:\Users\YourName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\BuildProcessSource\Templates

    Icono de Git Ejemplo de Git: C:\Users\YourName\Source\Repos\BuildProcesses\BuildProcessSource\Templates

    Descargar vínculo en la pestaña Proceso de la definición de compilación

    Cuadro de diálogo Guardar como

  5. En el explorador de soluciones (teclado: Ctrl + Alt + L), agregue la plantilla al proyecto Templates.

    Agregar el archivo de la plantilla de proceso de compilación al proyecto

    Cuadro de diálogo Agregar elemento existente

    No necesita el archivo Activity1.xaml, por lo que puede eliminarlo si lo desea.

  6. Establezca la propiedad Acción de compilación de la plantilla en Content.

    Establecer Acción de compilación en Contenido

  7. Agregue las siguientes referencias a su proyecto de código Templates:

    ¿Cómo agrego estas referencias al proyecto de código?

    Guarde el proyecto de código.

  8. Implemente un mensaje “Hello World!” de modo que, después de proteger y ejecutar la plantilla, pueda estar seguro de que funciona. Para ello, arrastre una actividad WriteBuildMessage en el flujo de trabajo y establezca su propiedad BuildMessageImportance en Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High.

    Actividad WriteBuildMessage agregada a la plantilla

  9. Guarde la plantilla y cargue la nueva solución. Proteja los cambios pendientes si está en Icono de TFVC TFVC (teclado: Ctrl + 0, P), o confírmelos (teclado: Ctrl + 0, G) e insértelos si está en Icono de Git Git.

    Actualizar los cambios con TFVC o Git

Usar una plantilla personalizada en la definición de compilación

Después de haber cargado una plantilla de proceso de compilación personalizada en el proyecto de equipo como se ha explicado anteriormente, puede usar la plantilla desde las definiciones de compilación.

  1. En la página de compilaciones (teclado: Ctrl + 0, B), cree o edite una definición de compilación.

  2. En la pestaña Proceso de la definición de compilación, elija Mostrar detalles Mostrar detalles y seleccione Nuevo.

    Definición de compilación, pestaña Proceso, botón Nuevo

  3. Después de elegir Nuevo:

    • TFVC: escriba la ruta de acceso a la plantilla en Team Foundation Server o desplácese hasta ella.

    • Git: escriba la ruta de acceso a la plantilla en el equipo de desarrollo o desplácese hasta ella.

  4. Después de especificar la ruta de acceso a la plantilla, puede seleccionarla en la lista.

    Archivo CustomTemplate seleccionado en la definición de compilación

  5. Si está creando una nueva definición de compilación, seleccione la solución que está compilando y especifique la ubicación provisional y cualquier otra opción que necesite. Consulta Crear o modificar una definición de compilación. Cuando termine, guarde la definición de compilación.

  6. En la página de compilaciones (teclado: Ctrl+ 0, B), ponga la compilación en la cola.

    Consulta de una compilación desde la página de compilaciones

  7. Completada la compilación, vea los resultados para comprobar que el flujo de trabajo personalizado se ejecuta como se esperaba.

    Aparece el mensaje de "Hola a todos" en el registro de compilación

Preguntas y respuestas

P: El sistema me bloqueó porque no tengo permisos.¿Cómo se puede conseguir?

R: Referencia de permisos para Team Foundation Server

P: ¿Por qué necesito un proyecto de código para editar mi plantilla?

R: Debe editar las plantillas desde un proyecto de código porque

  • Pueden producirse problemas al intentar editar una plantilla fuera del contexto de un proyecto de código.

  • Pueden producirse problemas a menos que desarrolle la actividad del proceso de compilación en la misma solución que las plantillas de proceso de compilación. Al trabajar de esta manera, si necesita utilizar una de las actividades de la plantilla de proceso, la actividad está disponible en el cuadro de herramientas del diseñador de flujo de trabajo. Sin embargo, debe mantener el código fuente de las actividades en un proyecto de código independiente del que contiene las plantillas de proceso de compilación. Consulta Desarrollar y usar actividades de proceso de compilación personalizadas.

P: ¿Cómo agrego las referencias que necesito para trabajar con el flujo de trabajo de TFBuild?

R: Use el administrador de referencias para agregar referencias a bibliotecas.

Vea las referencias de proyecto de código y abra el administrador de referencias.

Personalizar las referencias de proyecto de código de plantilla

Cuadro de diálogo Administrador de referencias

Desplácese a C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ReferenceAssemblies\v2.0 y seleccione y agregue:

Cuadro de diálogo Seleccionar archivos a los que hacer referencia

Cuadro de diálogo Administrador de referencias

P: ¿Puedo compartir una plantilla entre varios proyectos de equipo?

R: Sí. Puede registrar una plantilla con más de un proyecto de equipo. Esta capacidad significa que puede compartir un proceso de compilación en cualquier proyecto de equipo de la colección de proyectos de equipo que contenga la plantilla.

P: Si modifico mi plantilla, ¿qué ocurre con las definiciones de compilación que la usan?

R: Si necesita modificar una plantilla, debe planear la revisión de todas las definiciones de compilación basadas en la plantilla y corregirlas una vez completados los cambios efectuados en la plantilla. Si no lo hace, las definiciones de compilación podrían producir un error o funcionar de forma inesperada.

P: ¿Qué ocurre si elimino mi plantilla de proceso de compilación?

R: Si decide eliminar una plantilla de proceso de compilación, primero debe asegurarse de buscar y eliminar todas las definiciones de compilación basadas en la plantilla. Cuando elimine la plantilla, las restantes definiciones de compilación basadas en la plantilla dejarán de funcionar.

P: ¿Qué está causando errores en mi proceso de compilación personalizado?

R: Existen algunas causas comunes de algunos errores:

  • TF215097: puede aparecer si a la actividad personalizada le falta un atributo obligatorio o si se intenta editar la plantilla en el mismo proyecto de código que contiene las actividades personalizadas.

  • Error XC1014 de MSBuild: puede aparecer si no establece la acción de compilación de la plantilla en Content.

Si obtiene uno de los errores anteriores, asegúrese de que no ha omitido uno de los pasos de los procedimientos anteriores.

También puede ser que encuentre útil este tema: Diagnosticar problemas de la compilación.

P: ¿Qué es Windows Workflow Foundation?¿Cómo se usa?

R: Windows Workflow Foundation.

P: ¿Cómo obtengo datos de la variable de entorno?

A: Usar datos de entorno de un proceso de compilación personalizado

P: ¿Dónde se puede obtener información sobre las actividades integradas?

R: Actividades de Team Foundation Build

¿Qué hago si las actividades integradas no satisfacen mis necesidades?

R: Desarrollar una actividad de proceso de compilación personalizada propia.

P: ¿Dónde puedo obtener plantillas, actividades de flujo de trabajo y scripts?

R: Extensiones de TFS Build de la comunidad

P: ¿Dónde puedo obtener más información sobre cómo desarrollar procesos de compilación personalizados?

R: Respuesta de Curah!: Personalizar el proceso de Team Foundation Build