2011-09-16 11 views
5

Hemos estado utilizando MSBuild durante algunos años con éxito en nuestra empresa. Tenemos un .proj fichero de construcción muy personalizado para cada especificación de construcción (Release, depuración, etc.) que incluyen muchas operaciones como:MSBuild vs. Workflow

  • ofuscación
  • embalaje
  • salidas de copia
  • Compresión
  • Etc

Desde Microsoft incluye una nueva característica en TFS2010 para hacer construcciones u cantar Windows Workflow Foundation, estamos pensando en cambiarlo. Como dijo Jim Lab (Gerente Programa de Team Foundation Server) en un article, aquí está su orientación general sobre cuándo debe usarlos:

  • Si la tarea requiere el conocimiento de las entradas o salidas de generación específicos, utilizar MSBuild
  • Si la tarea es algo que tiene que suceder cuando se genera en Visual Studio, utilizar MSBuild
  • Si la tarea es algo que sólo tiene que pasar cuando se construye en el servidor de compilación, utiliza WF menos que re cuadernillos de conocimientos específicos de entradas/salidas construcción

no estoy siendo bastante seguro de ello y me gustaría conocer su propia experiencia, las cosas positivas, inconvenientes, etc. Su opinión sería más valiosa si ha modificado el DefaultTemplate.xaml para realizar sus propias operaciones.

Respuesta

6

Hemos hecho la transición de MSBuild a Workflow migrando de TFS2008 a TFS2010. Algunas experiencias:

  1. Las especificaciones de MSBuild funcionan bien en Workflow cuando se utiliza UpgradeTemplate.xaml. Esto permite una migración relajada de TFS2008 a TFS2010
  2. MSBuild brinda más control a los equipos de desarrollo sobre cómo quieren que se ejecuten sus compilaciones. Los miembros pueden modificar fácilmente las especificaciones y comprobar los cambios. El flujo de trabajo es más una cosa BuildMaster.
  3. Los cambios de MSBuild pueden realizarse rápidamente. Los cambios en el flujo de trabajo son un poco más problemáticos. A veces, los cambios rápidos son buenos, pero también se desvían del equipo de desarrollo de una línea governd de hacer las cosas.
  4. El flujo de trabajo separa el proceso plantilla de los datos utilizados para controlar una compilación específica. Estas plantillas son más fáciles de reutilizar.

Impresión general personal: use MSBuild para edificios más pequeños dirigidos por un equipo de desarrollo. Use Workflow para líneas de fabricación de productos maduros.