Compartir a través de


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:

  1. Crear una plantilla de procesos de compilación

  2. Personalizar la nueva plantilla

  3. Proteger la plantilla con el control de versiones

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

  1. En Team Explorer, haga clic en el proyecto de equipo en el que desea crear flujos de trabajo personalizados.

  2. En el menú Generar, haga clic en Definición de nueva compilación.

  3. Haga clic en la pestaña Proceso para ver el siguiente diagrama.

    Pestaña Proceso para nueva definición de compilación

  4. 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.

  5. Haga clic en Copiar un archivo XAML existente.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. Haga clic en Desproteger.

  11. 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:

  1. Para agregar una secuencia de implementación de la base de datos al flujo de trabajo

  2. Para agregar la actividad If

  3. Para definir el bloque Then Deploy

  4. Para definir el bloque Else Skip Deployment

Para agregar una secuencia de implementación de la base de datos al flujo de trabajo

  1. En el Diseñador de flujo de trabajo de Windows, haga clic en Contraer todo.

    Aparecerá el siguiente diagrama.

    Flujo de trabajo inicial de implementación

  2. 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.

  3. Coloque la actividad entre las dos flechas, como se muestra en el siguiente diagrama.

    Flujo de trabajo tras colocar una nueva secuencia

  4. Haga clic con el botón secundario en la secuencia que agregó y, a continuación, haga clic en Propiedades.

    Aparece la ventana Propiedades.

  5. Establezca la propiedad DisplayName en Implementar base de datos.

  6. 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.

    Flujo de trabajo tras expandir la secuencia de implementación

    Un canal de navegación está disponible en la parte superior del diseñador, como se muestra en el siguiente diagrama.

    Canal de navegación en el Diseñador de flujo de trabajo de Windows

Después, agregue una actividad If a la secuencia de implementación.

Para agregar la actividad If

  1. 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.

    Flujo de trabajo tras añadir la actividad If

  2. Haga clic con el botón secundario en la actividad que agregó y, a continuación, haga clic en Propiedades.

    Aparece la ventana Propiedades.

  3. Establezca la propiedad DisplayName de la actividad If en If Build and Tests Succeeded.

  4. Haga doble clic en Haga doble clic para verlo en la actividad If.

  5. 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.

Flujo de trabajo tras haber expandido la actividad If

Después, agregue una actividad Invoke Process a la parte Then de la actividad If.

Para definir el bloque Then Deploy

  1. 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.

  2. Haga doble clic en Haga doble clic para verlo en la actividad Invoke VSDBCMD.

    La actividad aparece de la siguiente forma.

    Flujo de trabajo mientras se define la cláusula Then

  3. Establezca las propiedades de la actividad InvokeProcess realizando las siguientes subtareas:

    1. Haga clic con el botón secundario en la actividad que agregó y, a continuación, haga clic en Propiedades.

      Aparece la ventana Propiedades.

    2. Establezca la propiedad DisplayName de la actividad InvokeProcess en Invoke VSDBCMD.

    3. 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.

    4. 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.

      Nota importanteImportante

      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.

    5. Establezca la propiedad WorkingDirectory en BuildDetail.DropLocation.

  4. 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.

  5. Establezca las propiedades de la actividad WriteBuildMessage realizando las siguientes subtareas:

    1. Haga clic con el botón secundario en la actividad que agregó y, a continuación, haga clic en Propiedades.

      Aparece la ventana Propiedades.

    2. Establezca la propiedad DisplayName de la actividad WriteBuildMessage en VSDBCMD Output.

    3. Establezca la propiedad Importance en Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High.

    4. Establezca la propiedad Message en stdOutput.

  6. 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.

  7. Establezca las propiedades de la actividad WriteBuildError realizando las siguientes subtareas:

    1. Haga clic con el botón secundario en la actividad que agregó y, a continuación, haga clic en Propiedades.

      Aparece la ventana Propiedades.

    2. Establezca la propiedad DisplayName de la actividad WriteBuildError en VSDBCMD Error.

    3. Establezca la propiedad Message en errOutput.

    4. 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.

Flujo de trabajo una vez que la cláusula Then se ha completado

Después define los detalles de la actividad Else.

Para definir el bloque Else Skip Deployment

  1. 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.

  2. Establezca la propiedad DisplayName de la actividad WriteBuildWarning en Deployment Skipped.

  3. 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.

Flujo de trabajo de implementación de toda la base de datos

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.

  1. Guarde el flujo de trabajo y cierre el diseñador.

  2. 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.

  3. (Opcional) puede especificar comentarios de protección o información adicional sobre el cambio. Para obtener más información, vea los temas siguientes:

  4. 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: Preparar una base de datos para la implementación desde un símbolo del sistema mediante VSDBCMD.EXE

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.