Utilizar la plantilla predeterminada para el proceso de compilación
La plantilla predeterminada ( TfvcTemplate.12.xaml o GitTemplate.12.xaml) permite definir rápidamente un proceso básico que compile y pruebe el código. Tiene opciones para controlar la manera en que Team Foundation Build (TFBuild) compila el código y ejecuta las pruebas y otros procesos, como los scripts.
Primeros pasos
(Opcional) Antes de crear una nueva definición de compilación, desde la página principal de Team Explorer (teclado: Ctrl + 0, H), abra la solución que desea compilar para especificarla automáticamente en el cuadro Proyectos.
En Team Explorer, asegúrese de que está conectado al proyecto de equipo (teclado: Ctrl + 0, C) y después abra la página Compilaciones (teclado: Ctrl + 0, B).
Elija el vínculo Definición de nueva compilación o seleccione una compilación, abra el menú contextual y elija Editar definición de compilación.
Sugerencia
Si aparece un mensaje de error TF225001, configure un controlador de compilación.
En la pestaña Proceso, en Plantilla de proceso de compilación, aparece seleccionada la plantilla de forma predeterminada.
Advertencia
¿Está conectado a un proyecto de equipo Git alojado en Visual Studio Online?¿No tiene los parámetros Invalidar desprotección y Proyectos?
Vea ¿Cómo me aseguro de que estoy utilizando la plantilla de proceso de compilación predeterminada de Git correcta en Visual Studio Online?
Use la información que aparece más adelante en este tema para completar los campos que proporcionan la funcionalidad que desea incluir en esta definición de compilación.
Cuando haya rellenado los campos de la pestaña Proceso, especifique las opciones del proceso de compilación de las otras pestañas.
Para obtener más información, vea Crear o modificar una definición de compilación.
¿Qué desea hacer a continuación?
Obtener el código
Compilar el código
Especificar los proyectos que se van a compilar
Especificar las plataformas y las configuraciones que se van a compilar
Especificar las opciones de compilación
Ejecutar otros procesos durante la compilación
Realizar análisis de código durante la compilación
Controlar el modo en que los servidores ejecutan la compilación
Especificar los agentes de compilación que procesan la compilación
Especificar los límites de tiempo de los agentes de compilación
Controlar los resultados de la compilación
Especificar la ubicación de los resultados de la compilación
Hacer que los nombres de las compilaciones completadas resulten útiles para el equipo
Publicar símbolos de la compilación
Asociar y crear elementos de trabajo
Crear un elemento de trabajo tras un error
Etiquetar el código fuente
Obtener respuestas a preguntas comunes
Obtener el código
Puede establecer algunas opciones para determinar la manera en que el agente de compilación obtiene el código fuente que especificó en la pestaña Configuración de origen.
Si desea... |
Establezca este parámetro… |
Siguiendo estas pautas... |
---|---|---|
Especificar si se va a limpiar el área de trabajo o el repositorio Git en el agente de compilación antes de procesar la compilación |
TFVC: Área de trabajo limpia Git: Repositorio limpio |
Seleccione True para eliminar todos los resultados y los archivos de código fuente existentes antes de que se procese la compilación. Use esta opción si desea que el proceso de compilación sea lo más exhaustivo posible a la hora de exponer los problemas del proceso de compilación. Sugerencia Si el proceso de compilación no requiere un área de trabajo ni un repositorio limpios, puede reducir significativamente el tiempo necesario para ejecutar la compilación si establece el valor de este parámetro en False. Esta configuración no tiene efecto si se utiliza el controlador de compilación hospedado. En este caso, se obtiene un nuevo directorio de trabajo con cada compilación. |
Compilar una versión concreta del código fuente |
TFVC: Obtener versión Git: Invalidar desprotección |
TFVC: especifique el valor de versionspec que identifica la versión que desea compilar. Git: especifique el identificador de bifurcación o de confirmación que desea desproteger. |
Compilar el código
Puede usar MSBuild para compilar el código.
Especificar los proyectos que se van a compilar
En el cuadro Proyectos, en la sección Compilación, en la tabla Parámetros del proceso de compilación, puede especificar las soluciones o los proyectos de código que desea compilar. Debe especificar al menos una solución o un proyecto.
Si va a compilar varios proyectos relacionados, normalmente deberá agregarlos a una única solución y especificar esa solución en la celda Proyectos en lugar de especificar cada proyecto por separado.
En el cuadro Proyectos, puede elegir el botón de puntos suspensivos (...) para abrir el cuadro de diálogo Soluciones y proyectos y especificar en él las soluciones o los proyectos que se van a compilar.
Si desea rellenar manualmente el cuadro Proyectos para un proyecto de equipo TFVC, especifique la ruta de acceso de control de versiones completa de cada proyecto o solución que desee compilar. Se delimita cada valor con una coma, como se muestra en el ejemplo siguiente:
$/Features/FeatureA/Server/All Server Projects.sln, $/Features/FeatureA/Client/All Client Projects.sln
Importante
Si usa TFVC, asegúrese de que la ruta de acceso a cada proyecto o solución es un elemento secundario de uno de los valores de Carpeta de control de código fuente que aparecen en la pestaña Configuración de origen de la definición de compilación.Si usa Git, asegúrese de que el proyecto o la solución se encuentra en el repositorio Git, en una bifurcación que esté compilando.
Especificar las plataformas y las configuraciones que se van a compilar
En el cuadro Configuraciones, puede especificar las plataformas y las configuraciones que desea compilar. Por ejemplo, para especificar que en esta compilación únicamente debe compilarse la configuración de lanzamiento de la versión de 32 bits del proyecto de C++, escriba Release| x86 en este cuadro.
Sugerencia
Si el código base es grande, para aumentar significativamente la velocidad de procesamiento de la compilación, compile únicamente las configuraciones y plataformas que necesite.
Si deja vacío el cuadro Configuraciones, se compilan la configuración y la plataforma predeterminadas que se definen en cada solución o proyecto.
En el cuadro Configuraciones, puede elegir el botón de puntos suspensivos (...) para abrir el cuadro de diálogo Configuraciones y especificar en él los elementos que se van a compilar. También puede especificarlos manualmente.
Todas las configuraciones del cuadro Configuraciones deben tener el formato siguiente:
Configuración|Plataforma
Debe reemplazar los siguientes marcadores de posición:
Configuration es un valor como Debug, Release o All Configurations.
Platform es un valor como Win32, x86, x64 o Any CPU.
Las configuraciones de la lista deben delimitarse con comas.
Por ejemplo, si desea compilar las configuraciones Debug y Release del proyecto de C#, especifique Debug|Any CPU, Release|Any CPU en el cuadro Configuraciones.
Los tokens que se usan para la configuración y la plataforma deben coincidir con los tokens que se definen en las propiedades de la solución o del proyecto de código. Si no coinciden, es posible que se produzcan resultados inesperados cuando se complete la compilación.
Nota
Si compila proyectos de código individuales en lugar de un archivo de solución y desea especificar Any CPU como plataforma, debe especificarlo como AnyCPU en lugar de como Any CPU.
Especificar las opciones de compilación
Puede controlar varias opciones de compilación.
Si desea... |
Establezca este parámetro… |
Siguiendo estas pautas... |
---|---|---|
Controlar si desea volver a compilar |
Compilar, Compilación limpia |
Establézcalo en True si desea recompilar todo el código de los proyectos de código. Esto equivale a MSBuild /target:clean. Esta opción no tendrá ningún efecto práctico si no establece también Repositorio limpio en False. Sugerencia Para reducir de manera significativa el tiempo requerido para compilar códigos base de gran tamaño, establezca esta opción en False. |
Validar el código con diagramas en capas |
Compilar, Avanzadas, Argumentos de MSBuild |
Incluya la siguiente cadena en este valor de parámetro: /:pValidateArchitecture=true. Para obtener más información, vea Validar código con diagramas de capas. |
Especificar los argumentos de la línea de comandos que se pasan a MSBuild |
Compilar, Avanzadas, Argumentos de MSBuild |
Si el proceso de compilación requiere que se pasen argumentos a MSBuild, escríbalos en el parámetro Argumentos de MSBuild. Para obtener más información, vea Referencia de la línea de comandos de MSBuild. |
Especificar el valor de bits de la versión de MSBuild que se usa para procesar la compilación |
Compilar, Avanzadas, Plataforma de MSBuild |
Especifique uno de los siguientes valores:
Si especifica este valor, debería asegurarse (usando, por ejemplo, una etiqueta como la que se explicó al comienzo de este tema) de que la compilación la procesa un agente de compilación que está hospedado en una máquina de compilación de 64 bits. De lo contrario, la compilación no se realizará correctamente. |
Ejecutar otros procesos
Puede ejecutar otros procesos durante la compilación.
Realizar análisis de código
Para encontrar defectos comunes durante la compilación, puede analizar el código. Establezca el parámetro Realizar análisis de código en los parámetros de compilación avanzados.
Seleccione Según configuración para analizar cada uno de los proyectos de código en los que esta característica está habilitada.
Seleccione Siempre para analizar cada proyecto de código con independencia de si esta característica está habilitada en los proyectos de código.
Seleccione Nunca para omitir el análisis de código.
Para obtener más información, consulte uno de los temas siguientes:
Cómo: Establecer propiedades de análisis de código para proyectos de C/C++
Cómo: Configurar el análisis de código para un proyecto de código administrado
Cómo: Configurar el análisis de código para una aplicación web ASP.NET
Controlar el modo en que los servidores ejecutan la compilación
Puede controlar la manera en que los servidores de compilación ejecutan la compilación
Especificar los agentes de compilación que procesan la compilación
Para especificar qué agentes de compilación se usan para procesar la compilación, expanda el nodo Avanzadas, expanda el nodo Configuración del agente y, a continuación, especifique valores para los siguientes parámetros:
Filtro de nombres: puede filtrar los agentes de compilación que se usan para procesar esta definición de compilación escribiendo el nombre del agente en este campo. También puede especificar un conjunto de nombres mediante los caracteres comodín * y ? Por ejemplo, puede escribir CI* para especificar cualquier agente cuyo nombre comience por los caracteres CI. Algunos de los agentes que coinciden con este criterio son CI, CI1 o CI_Agent2.
Filtro de etiquetas: especifique una o varias etiquetas para asegurarse de que esta compilación la ejecutarán únicamente los agentes de compilación que tengan etiquetas que coincidan. Aplique normalmente las etiquetas a algunos agentes de compilación para reservarlos para fines especiales. Por ejemplo, puede configurar un agente de compilación en una máquina de compilación diseñada para procesar las compilaciones de protección controlada. Puede aplicar la etiqueta "gated" a este agente de compilación. Por último, puede aplicar la etiqueta "gated" a la definición de compilación para que únicamente pueda procesarla el agente que tenga también esta etiqueta. Para especificar etiquetas, elija el botón de puntos suspensivos (...).
Nota
El grupo de agentes de compilación disponibles para procesar esta compilación viene determinado por el controlador de compilación especificado para esta definición de compilación.Para modificar el controlador de compilación, haga clic en la pestaña Valores predeterminados de compilación, abra el menú Controlador de compilación y, a continuación, elija un controlador de compilación.
Operador de comparación de etiquetas: en el menú, elija uno de los siguientes valores:
MatchExactly: elija este valor si desea que esta definición de compilación la procesen solo los agentes de compilación que tengan exactamente el mismo conjunto de etiquetas que especificó en el cuadro Filtro de etiquetas. Si no especifica ninguna etiqueta, cualquier agente puede procesar esta definición de compilación.
Sugerencia
Si elige MatchExactly, se restringen los agentes disponibles para esta definición de compilación a aquellos cuyo conjunto de etiquetas es idéntico al especificado en el campo Filtro de etiquetas.
MatchAtLeast: elija este valor si desea que esta definición de compilación la procese cualquier agente de compilación que tenga al menos el mismo conjunto de etiquetas que especificó en el cuadro de Filtro de etiquetas. Si no especifica ninguna etiqueta, solo los agentes que no tienen etiquetas pueden procesar esta definición de compilación.
Especificar los límites de tiempo de los agentes de compilación
Para especificar los límites de tiempo, expanda el nodo Advanced, expanda el nodo Agent Settings y, a continuación, especifique los parámetros de la tabla siguiente.
Si desea... |
Establezca este parámetro… |
Siguiendo estas pautas... |
---|---|---|
Especificar el tiempo máximo permitido para que el agente de compilación procese la compilación |
Tiempo máximo de ejecución |
Especifique un intervalo de tiempo con el formato hh:mm:ss. Por ejemplo, se producirá un error de tiempo de espera en la compilación si especifica un valor de 04:30:15 y el agente de compilación no ha completado su trabajo después de 4 horas, 30 minutos y 15 segundos. Especifique el valor 00:00:00 si desea que el agente de compilación tenga tiempo ilimitado para procesar la compilación. |
Especificar el tiempo máximo permitido para asignar la solicitud de compilación a un agente de compilación |
Tiempo máximo de espera |
Especifique un intervalo de tiempo con el formato hh:mm:ss. Por ejemplo, se producirá un error de tiempo de espera en la compilación si especifica un valor de 01:30:45 y la compilación no se asigna a ningún agente de compilación después de 1 hora, 30 minutos y 45 segundos. Especifique el valor 00:00:00 si desea que el controlador de compilación tenga tiempo ilimitado para encontrar un agente de compilación que procese esta definición de compilación. |
Controlar los resultados de la compilación
Especificar la ubicación de los resultados de la compilación
Para controlar el lugar en el que TFBuild coloca los resultados de la compilación, elija:
SingleFolder para colocar juntos todos los archivos de salida de la compilación en la carpeta de entrega.
PerProject para agrupar los resultados de la compilación en subcarpetas de la carpeta de entrega para cada solución o proyecto de código especificado en el cuadro Proyectos.
AsConfigured para dejar los archivos binarios en la carpeta de orígenes de agentes de compilación, organizados en la misma estructura de subcarpetas que se ve al compilar el código en el equipo de desarrollo en Visual Studio. Esta estructura se define en los proyectos de código.
Si usa esta opción, TFBuild no copiará los resultados en la carpeta de entrega. En su lugar, puede programar los scripts para que copien los resultados en la ubicación especificada por TF_BUILD_BINARIESDIRECTORY, de modo que se coloquen en la ubicación de ensayo. Vea los scripts posteriores a la compilación o los scripts posteriores a la prueba.
Hacer que los nombres de las compilaciones completadas resulten útiles para el equipo
Usted y su equipo pueden usar Avanzadas, Formato del número de compilación para cargar datos útiles en el nombre de cada compilación completada. Si desea saber cuáles son los valores válidos para este parámetro, vea Utilizar números de compilación para dar nombres significativos a las compilaciones completadas.
Publicar símbolos de la compilación
Especifique el parámetro Ruta de acceso para publicar símbolos para indizar y publicar datos de símbolos y habilitar características como la depuración histórica. Vea Indizar y publicar datos de símbolos.
Asociar conjuntos de cambios, confirmaciones y elementos de trabajo
El proceso de compilación vincula automáticamente cada compilación completada con todos los conjuntos de cambios o confirmaciones que se incluyeron en el código, así como con sus elementos de trabajo asociados. No puede deshabilitar este comportamiento, pero en Avanzadas puede decidir si desea o no Actualizar elementos de trabajo con número de compilación; para ello deberá seleccionar True o False.
¿Cómo determina el proceso de compilación cuándo debe asociar conjuntos de cambios, confirmaciones y elementos de trabajo?
Crear un elemento de trabajo tras un error
En Avanzadas, Crear elemento de trabajo tras error, seleccione True si desea que, tras producirse un error en la compilación, el proceso de compilación cree un error y lo asigne a la persona que protegió el conjunto de cambios de TFVC o insertó la confirmación de Git.
Etiquetar el código fuente
En Control de versiones de TF, Etiquetar orígenes, seleccione True si desea marcar automáticamente con una etiqueta cada archivo de código fuente para que el equipo pueda identificar fácilmente la versión de cada archivo que está incluida en la compilación completada. Este valor no se aplica a los proyectos de equipo Git.
Para obtener información sobre el modo en que TFBuild determina la versión que se va a etiquetar, consulte ¿Era buena esa compilación?
Preguntas y respuestas
¿Cómo me aseguro de que estoy utilizando la plantilla de proceso de compilación predeterminada de Git correcta en Visual Studio Online?
¿Está conectado a un proyecto de equipo Git alojado en Visual Studio Online? ¿No tiene los parámetros Invalidar desprotección y Proyectos?
Cuándo muestra los detalles, ¿aparece Plantilla predeterminada (GitTemplate.xaml)?
Si es así, seleccione GitTemplate.12.xaml. A continuación, aparecerán el parámetro Invalidar desprotección y el botón para examinar en el parámetro Proyectos.
P: ¿Cómo determina el proceso de compilación cuándo debe asociar conjuntos de cambios, confirmaciones y elementos de trabajo?
R: Cada definición de compilación mantiene su propio registro sobre qué conjuntos de cambios (TFVC), confirmaciones (Git) y elementos de trabajo están a la espera de asociarse con la siguiente compilación completada.
Por ejemplo, el conjunto de cambios 382 se compila tanto en la Compilación A como en la Compilación B. La Compilación A se pone en cola y se completa correctamente. La Compilación B se pone en cola y no se realiza correctamente. El conjunto de cambios 382 está vinculado ahora con la compilación completada correctamente de la Compilación A y la compilación completada con errores de la Compilación B. El conjunto de cambios 382 no se va a vincular a la siguiente compilación completada de la Compilación A, aunque se vinculará a la siguiente compilación completada de la Compilación B.
Para obtener información sobre el modo en que TFBuild determina la versión que se va a asociar, consulte ¿Era buena esa compilación?