Desarrollar y usar actividades de proceso de compilación personalizadas
Después de crear una plantilla de proceso de compilación personalizada, puede implementar su propia lógica empresarial mediante instrucciones de Windows Workflow y las actividades integradas de Team Foundation Build (TFBuild). Si estas herramientas no son suficientes, puede utilizar actividades de terceros o, en caso necesario, implementar su propio código de .NET Framework en CodeActivity. 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.
|
Crear una actividad de proceso de compilación personalizada
Importante
Antes de empezar, obtenga una copia de la plantilla y colóquela en un proyecto de código.Si no ha hecho aún, aquí verá cómo hacerlo.
Debe desarrollar 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.
Agregue un nuevo proyecto de código de C# o Visual Basic a la solución que contiene el proyecto de código de la plantilla de proceso de compilación.
Agregue las referencias siguientes al nuevo proyecto de código:
¿Cómo agrego estas referencias al proyecto de código?
Guarde el proyecto de código.
Agregue una nueva actividad al proyecto.
Implemente el objeto CodeActivity. Por ejemplo, Hello.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Activities; using Microsoft.TeamFoundation.Build.Workflow.Activities; using Microsoft.TeamFoundation.Build.Client; using Microsoft.TeamFoundation.Build.Workflow.Tracking; namespace BuildProcessSource { // enable the build process template to load the activity [BuildActivity(HostEnvironmentOption.All)] // keep the internal activity operations from appearing in the log [ActivityTracking(ActivityTrackingOption.ActivityOnly)] public sealed class Hello : CodeActivity { // Define an activity input argument of type string public InArgument<string> SayHelloTo { get; set; } // If your activity returns a value, derive from CodeActivity<TResult> // and return the value from the Execute method. protected override void Execute(CodeActivityContext context) { // Obtain the runtime value of the Text input argument string text = context.GetValue(this.SayHelloTo); // Add our default value if we did not get one if (text == null || text == "") { text = "World"; } // Write the message to the log context.TrackBuildWarning("Hello " + text, BuildMessageImportance.High); } } }
No necesita el archivo Activity1.xaml, por lo que puede eliminarlo si lo desea.
Compile la solución en Visual Studio (teclado: Ctrl + Mayús + B).
Cuando haya terminado, la solución debe tener un aspecto similar al siguiente:
Editar la plantilla de proceso de compilación
Desde la solución, edite la plantilla de proceso de compilación arrastrando las actividades hasta ella. Una vez que la actividad se agregue a la plantilla, establezca sus propiedades (teclado: F4).
Cuando termine, guarde la plantilla.
Cargar el proceso de compilación personalizado
Para poder definir una compilación que use la plantilla y la actividad de proceso de compilación personalizadas, antes debe cargarlas y habilitarlas.
Cargar y habilitar el proceso de compilación personalizado en un proyecto de equipo de TFVC
Cargar y habilitar el proceso de compilación personalizado en un proyecto de equipo de Git
Cargar el proceso de compilación personalizado en un proyecto de equipo de TFVC
En un proyecto de equipo de TFVC:
Asegúrese de que haya compilado la solución (teclado: Ctrl + Mayús + B).
Conecte (teclado: Ctrl + 0, C) al proyecto de equipo donde piensa almacenar el origen del proceso de compilación.
Desde el Explorador de control de código fuente, agregue elementos a la carpeta que contiene el proyecto de código de la actividad.
Vaya a la carpeta que contiene el archivo .dll y selecciónelo. Por ejemplo, C:\Users\YourName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\BuildProcessSource\Source\bin\Debug.
Finalice el proceso para agregar el archivo.
Proteja sus cambios.
Cargar el proceso de compilación personalizado en un proyecto de equipo de Git
En un proyecto de equipo de Git:
Importante:
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 esta finalidad o puede crear un repositorio adicional en el proyecto de equipo existente.
Debe almacenar los archivos binarios en una subcarpeta del repositorio de Git. Si intenta utilizar los archivos binarios en la carpeta raíz, es posible que aparezca un mensaje de error porque no se encuentra la bifurcación de git.
Asegúrese de que haya compilado la solución (teclado: Ctrl + Mayús + B).
Conecte (teclado: Ctrl + 0, C) al proyecto de equipo donde piensa almacenar el origen del proceso de compilación.
Abra la ventana del símbolo del sistema de Git.
P: No puedo abrir el símbolo del sistema. ¿Qué hago? R: Habilite el símbolo del sistema de Git.
Utilice el símbolo del sistema de Git para agregar el archivo .dll. Por ejemplo:
cd c:\users\YourName\source\repos\BuildProcesses\BuildProcessSource\Source\bin\Debug git add Source.dll -f
Confirme sus cambios.
Sincronice o inserte su confirmación.
Habilitar el proceso de compilación personalizado
Para poder ejecutar el proceso de compilación personalizado, debe designar el controlador de compilación a los archivos binarios cargados en TFS y seleccionar la plantilla de proceso de compilación en la definición de compilación.
En la página Compilaciones (teclado: Ctrl + 0, B), elija Acciones y, a continuación, elija Administrar controladores de compilación.
En el cuadro de diálogo Administrar controladores de compilación, resalte el controlador que usará para ejecutar este proceso de compilación y, a continuación, elija Propiedades.
Especifique la ruta de acceso de control de versiones para los ensamblados personalizados.
Desplácese a una carpeta que sea antecesora de la carpeta en la que cargó el proceso de compilación en los pasos anteriores.
Ejemplo de TFVC: $/FabrikamTFVC/BuildProcessTemplates/BuildProcessSource/Source/bin/Debug
Ejemplo de Git: BuildProcessSource/Source/Bin/Debug
El sistema convierte automáticamente el valor que se especifica en una ruta de acceso de vstfs. Por ejemplo: vstfs:///Git/VersionedItem/FabrikamGit/BuildProcesses/master/BuildProcessSource/Source/Bin/Debug.
Si no lo ha hecho todavía, cree o modifique una definición de compilación y seleccione la plantilla de proceso de compilación personalizada.
Ejecutar la compilación
Ponga en cola la compilación. El resultado debe ser similar al siguiente:
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: ¿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.
Desplácese a C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ReferenceAssemblies\v2.0 y seleccione y agregue:
P: ¿Qué está causando errores en mi proceso de compilación personalizado?
R: Algunas causas comunes de errores.
P: ¿Qué es Windows Workflow Foundation?¿Cómo se usa?
R: Windows Workflow Foundation.
P: ¿Dónde se puede obtener información sobre las actividades integradas?
R: Actividades de Team Foundation Build
P: ¿Dónde puedo obtener plantillas de proceso de compilación, 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