Tutorial: Definir un flujo de trabajo personalizado que implemente una base de datos a partir de Team Foundation Build
Para implementar un proyecto de base de datos con Team Foundation Build, debe definir un flujo de trabajo personalizado para implementar primero una base de datos. Tiene que definir un flujo de trabajo personalizado para poder utilizar dicha definición en una definición de compilación. El flujo de trabajo se define utilizando Windows Workflow 4.0. No tiene que ser experto para seguir este procedimiento directo.
Para completar este tutorial, primero hay que llevar a cabo las tareas siguientes:
Permisos necesarios
Para realizar el procedimiento siguiente, debe tener establecido el permiso Editar definición de compilación en Permitir. Para obtener más información, vea Permisos de Team Foundation Server.
Crear una plantilla de procesos de compilación
La manera más fácil de crear una plantilla de procesos de compilación es copiando la plantilla predeterminada. Puede realizar esa acción cuando crea una definición de compilación. Normalmente, completaría la definición de compilación. Dado que el objetivo de este tutorial es la plantilla de procesos de compilación personalizada, no se abordarán más detalles sobre la definición de una nueva compilación. Para obtener más información sobre cómo compilar e implementar la base de datos, vea Cómo: Implementar cambios con Team Foundation Build.
Para crear una plantilla personalizada
En Team Explorer, haga clic en el proyecto de equipo en el que desea crear flujos de trabajo personalizados.
En el menú Generar, haga clic en Definición de nueva compilación.
Haga clic en la pestaña Proceso para ver el siguiente diagrama.
Haga clic en Mostrar detalles y, a continuación, haga clic en Nuevo.
Aparece el cuadro de diálogo Nueva plantilla de procesos de compilación.
Haga clic en Copiar un archivo XAML existente.
En Nuevo nombre de archivo, especifique el nombre del flujo de trabajo personalizado y, a continuación, haga clic en Aceptar.
Nota
Si desea reutilizar un archivo XAML existente, puede hacer clic en Seleccionar un archivo XAML existente y, a continuación, especifique la ruta de acceso del archivo en el servidor del control de versiones.
En la ventana de definición de compilación, debajo del menú Archivo del proceso de compilación, haga clic en el hipervínculo que contiene el nombre de la plantilla.
La carpeta que contiene la nueva plantilla aparece en el Explorador de control de código fuente.
En el recuadro Carpetas, haga clic con el botón secundario en la carpeta que contiene la nueva plantilla y haga clic en Obtener la última versión.
Haga clic con el botón secundario en su nueva plantilla y, a continuación, haga clic en Desproteger para editar.
Aparecerá el cuadro de diálogo Desproteger.
Haga clic en Desproteger.
Haga clic con el botón secundario en la nueva plantilla y haga clic en Ver.
Aparece el Diseñador de flujo de trabajo de Visual Studio.
Para obtener más información, vea cualquiera de los temas siguientes:
Personalizar la nueva plantilla
Debe agregar una secuencia a la plantilla predeterminada para agregar un paso de implementación al final del proceso de compilación. Personalice el archivo XAML utilizando Diseñador de flujo de trabajo de Windows. Aunque no haya utilizado este diseñador antes, los pasos del siguiente procedimiento no son especialmente complejos. En resumen, agregue una secuencia al flujo de trabajo en el que implementará la base de datos utilizando VSDBCMD.EXE si la compilación tuvo éxito y no las pruebas no arrojaron ningún error.
Esta secuencia contiene una única actividad If que implementará la base de datos si la compilación tuvo éxito y se pasaron las pruebas o si no hubo ninguna prueba. Para facilitar esta definición, la sección está dividida en cuatro procedimientos:
Para agregar una secuencia de implementación de la base de datos al flujo de trabajo
En el Diseñador de flujo de trabajo de Windows, haga clic en Contraer todo.
Aparecerá el siguiente diagrama.
Abra el Cuadro de herramientas, expanda la sección Flujo de control y, a continuación, arrastre la actividad Secuencia sobre la flecha del diseñador que está bajo Proteger los cambios recopilados para compilaciones de CheckInShelveset. Cuando pausa sobre la flecha, aparece una segunda flecha.
Coloque la actividad entre las dos flechas, como se muestra en el siguiente diagrama.
Haga clic con el botón secundario en la secuencia que agregó y, a continuación, haga clic en Propiedades.
Aparece la ventana Propiedades.
Establezca la propiedad DisplayName en Implementar base de datos.
En la secuencia Implementar base de datos, haga doble clic en Haga doble clic para verlo.
Los zooms para acercar del diseñador en la secuencia Implementar base de datos, como se muestra en el siguiente diagrama.
Un canal de navegación está disponible en la parte superior del diseñador, como se muestra en el siguiente diagrama.
Después, agregue una actividad If a la secuencia de implementación.
Para agregar la actividad If
Abra el Cuadro de herramientas, expanda la sección Flujo de control y arrastre la actividad If hasta Coloque aquí una actividad.
Aparece un icono de advertencia en la secuencia Implementar base de datos y en la actividad If, porque no ha configurado todavía la actividad If, como se muestra en el siguiente diagrama.
Haga clic con el botón secundario en la actividad que agregó y, a continuación, haga clic en Propiedades.
Aparece la ventana Propiedades.
Establezca la propiedad DisplayName de la actividad If en If Build and Tests Succeeded.
Haga doble clic en Haga doble clic para verlo en la actividad If.
En el cuadro Condición, escriba la condición siguiente.
BuildDetail.CompilationStatus = BuildPhaseStatus.Succeeded And (BuildDetail.TestStatus = BuildPhaseStatus.Succeeded Or BuildDetail.TestStatus = BuildPhaseStatus.Unknown)
Esta condición comprueba si la compilación fue correcta y si se pasaron las pruebas o no se ejecutó ninguna.
La actividad If Build and Tests Succeeded se parece al siguiente diagrama.
Después, agregue una actividad Invoke Process a la parte Then de la actividad If.
Para definir el bloque Then Deploy
Abra el Cuadro de herramientas, busque la actividad InvokeProcess en la sección Actividades de Team Foundation Build y arrástrela a Coloque aquí una actividad en la cláusula Then.
Un icono de advertencia aparece en la actividad If Build and Tests Succeeded y la actividad InvokeProcess porque no ha configurado la actividad InvokeProcess todavía.
Haga doble clic en Haga doble clic para verlo en la actividad Invoke VSDBCMD.
La actividad aparece de la siguiente forma.
Establezca las propiedades de la actividad InvokeProcess realizando las siguientes subtareas:
Haga clic con el botón secundario en la actividad que agregó y, a continuación, haga clic en Propiedades.
Aparece la ventana Propiedades.
Establezca la propiedad DisplayName de la actividad InvokeProcess en Invoke VSDBCMD.
Establezca la propiedad Arguments en "/a:Deploy /dd+ /dsp:Sql /manifest:DatabaseProjectName.deploymanifest". Debe reemplazar DatabaseProjectName por el nombre del proyecto de base de datos que desea implementar.
Establezca la propiedad FileName en la ruta de acceso de VSDBCMD.EXE en el servidor de compilación. Por ejemplo, podría especificar C:\Program Files\Microsoft Visual Studio 10.0\VSTSDB\Deploy\VSDBCMD.EXE si instaló Visual Studio en el equipo de compilación o C:\Deploy\VSDBCMD.EXE si solo copió la carpeta Deploy en el equipo de compilación.
Importante Para implementar la base de datos utilizando VSDBCMD.EXE, el contenido de la carpeta Deploy debe estar activado en el equipo de compilación. Para obtener más información, vea Cómo: Preparar una base de datos para la implementación desde un símbolo del sistema mediante VSDBCMD.EXE.
Establezca la propiedad WorkingDirectory en BuildDetail.DropLocation.
Abra el Cuadro de herramientas, busque la actividad WriteBuildMessage en la sección Actividades de Team Foundation Build y arrástrela a Coloque aquí una actividad de la sección Controlar salida estándar.
Un icono de advertencia aparece en la actividad Invoke VSDBCMD y la actividad WriteBuildMessage porque no se ha configurado la actividad WriteBuildMessage todavía.
Establezca las propiedades de la actividad WriteBuildMessage realizando las siguientes subtareas:
Haga clic con el botón secundario en la actividad que agregó y, a continuación, haga clic en Propiedades.
Aparece la ventana Propiedades.
Establezca la propiedad DisplayName de la actividad WriteBuildMessage en VSDBCMD Output.
Establezca la propiedad Importance en Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High.
Establezca la propiedad Message en stdOutput.
Abra el Cuadro de herramientas, busque la actividad WriteBuildError en la sección Actividades de Team Foundation Build y arrástrela a Colocar actividad aquí de la sección Controlar salida de errores.
Un icono de advertencia aparece en la actividad Invoke VSDBCMD y la actividad WriteBuildError porque no se ha configurado la actividad WriteBuildError todavía.
Establezca las propiedades de la actividad WriteBuildError realizando las siguientes subtareas:
Haga clic con el botón secundario en la actividad que agregó y, a continuación, haga clic en Propiedades.
Aparece la ventana Propiedades.
Establezca la propiedad DisplayName de la actividad WriteBuildError en VSDBCMD Error.
Establezca la propiedad Message en errOutput.
En el canal de la parte superior del diseñador, haga clic en If Build and Test Succeeded.
Haciendo esto, se aleja un nivel en el flujo de trabajo.
En este punto, el flujo de trabajo aparece como se muestra en el siguiente diagrama.
Después define los detalles de la actividad Else.
Para definir el bloque Else Skip Deployment
Abra el Cuadro de herramientas, encuentre la actividad WriteBuildWarning en la sección Actividades de Team Foundation Build y arrástrela a Coloque aquí una actividad en la cláusula Else.
Un icono de advertencia aparece en la actividad If Build and Tests Succeeded y la actividad WriteBuildWarning porque no ha configurado la actividad WriteBuildWarning todavía.
Establezca la propiedad DisplayName de la actividad WriteBuildWarning en Deployment Skipped.
Establezca la propiedad Message en "Database deployment was skipped".
Los iconos de advertencia ya no aparecen porque ha configurado las actividades de flujo de trabajo que agregó.
La actividad If debería aparecer ahora como se muestra en el siguiente diagrama.
Ha actualizado el flujo de trabajo de la compilación para implementar el proyecto de base de datos especificado. Ahora tiene que proteger la plantilla con el control de versiones para que pueda utilizarlo en el proceso de compilación.
Proteger la plantilla con el control de versiones
Para poder utilizar el flujo de trabajo en una definición de compilación, debe protegerlo primero con el control de versiones. También puede aprovechar las características de control de versiones, como crear una bifurcación. Puede crear una bifurcación del flujo de trabajo al crear una bifurcación del proyecto.
Guarde el flujo de trabajo y cierre el diseñador.
En el Explorador de control de código fuente, haga clic con el botón secundario en el archivo o la carpeta y, a continuación, haga clic en Proteger cambios pendientes.
Aparecerá el cuadro de diálogo Proteger.
(Opcional) puede especificar comentarios de protección o información adicional sobre el cambio. Para obtener más información, vea los temas siguientes:
Haga clic en Proteger.
Ahora puede definir una compilación que utiliza el flujo de trabajo personalizado que elaboró en este tutorial. Para obtener más información, vea Cómo: Implementar cambios con Team Foundation Build.
Pasos siguientes
Debe probar la plantilla personalizada ahora. Para obtener más información, vea Cómo: Implementar cambios con Team Foundation Build.
Vea también
Tareas
Cómo: Implementar cambios en bases de datos nuevas o existentes
Conceptos
Descripción general de la generación e implementación de bases de datos
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
Julio de 2010 |
Agregado este tema para mostrar cómo crear un flujo de trabajo personalizado para implementar una base de datos utilizando Team Foundation Build. |
Mejora de la información. |