Guia Build Server p2

download Guia Build Server p2

of 28

Transcript of Guia Build Server p2

WORK FLOW WF4 beta 1 incluye un amplio conjunto de actividades (ms de 35) que se pueden utilizar para crear sus flujos de trabajo o crear sus propias actividades personalizadas. Este artculo le dar un rpido recorrido a travs de la paleta de la actividad y le presentaremos a las principales caractersticas de la salida de las actividades de la caja. Las actividades son la unidad de trabajo en un programa de flujo de trabajo. Las actividades en WF4 tener una firma y el cuerpo. La firma de una actividad se define en trminos de sus argumentos pblicos. Estos argumentos pblicos definen el flujo de datos dentro y fuera de una actividad. El cuerpo de una actividad es una parte de la lgica de ejecucin que puede ejecutar en mltiples pulsos de trabajo. Esta lgica se puede expresar de forma declarativa en cuanto a otras actividades o con cdigo imperativo. Procesal Actividades proporcionan un mecanismo de procedimiento para modelar el flujo de control secuencial utilizando conceptos que conocemos de las lenguas de procedimiento estndar como C # o Visual Basic como si, ceder, al mismo tiempo, actividades, etc procesales son los elementos bsicos para representar el comportamiento secuencial, incluyendo el control de la invocacin del mtodo de flujo, sobre los objetos de CLR, la manipulacin de recogida y tratamiento de errores. Tambin cubre los escenarios avanzados como actividades paralelas, gestin de transacciones de compensacin, cancelacin, y la persistencia. La siguiente tabla contiene todas las actividades en la categora de procedimiento. Las palabras en negrita en la descripcin de cada actividad que represente sus argumentos ms importantes.

Actividad eAddToCollection

Descripcin Agrega un elemento a una coleccin.

Diseador

RemoveFromCollection Quita un elemento de una coleccin. Borra una coleccin, la eliminacin de ClearCollection todos los elementos almacenados en ella. Comprueba si un elemento existe en ExistsInCollection una coleccin. Si el elemento existe, el resultado dar el argumento verdadero. Control de Flujo La actividad Si selecciona una actividad Si secundaria para la ejecucin basado en el valor de una expresin booleana. Si la expresin booleanaCondicin da verdadero (y "Entonces" la actividad est configurado), la " continuacin La actividad est programada. Si las expresiones da falso (y el "Else" de actividad est definido), el " Else ", la expresin est programado. Ejecuta su cuerpo hasta que la condicin se evala como True. El Consejo se ejecutar al menos una vez. La actividad ForEach contiene una lista de valores y un cuerpo. En tiempo de ejecucin, la lista se repite y el cuerpo se ejecuta para cada valor de la lista. La actividad de obtencin proporciona basado en eventos de modelado de control de flujo en WF. Los hijos nicos vlidos para una actividad de Pick son PickBranches. Al comienzo de la ejecucin de Seleccin, todas las actividades de

DoWhile

ForEach / ForEach

Recoger (Pick)

PickBranch

activacin de todas sus ramas se han programado. Cuando la primera activacin completa su actividad de accin correspondiente est programada, y todas las actividades de activacin otras se cancelan. PickBranch representa una rama en un Pick. Se trata de un disparo y accin. PickBranch slo se puede aadir a una actividad de Pick.

Secuencia - Sequence

La actividad de secuencia permite la ejecucin de una o ms actividades en orden. La actividad de switch es similar a cambiar de instruccin en C #.Contiene una expresin y un conjunto de casos (cada caso tiene una clave y una actividad).Despus se evala la expresin, la actividad del interruptor busca un caso con una clave que coincida con el resultado de la expresin y si se encuentra, los horarios de la actividad asociada con ese asunto. La actividad dentro del cuerpo se ejecuta, mientras que un valor booleano condicin es True.

Cambiar - Switch

Mientras que - While

La ejecucin en paralelo Paralelo - Parallel La actividad paralela que permite la ejecucin en paralelo de sus hijos. Funciona mediante la programacin de cada uno en su WorkflowElement Sucursales coleccin en el comienzo de su ejecucin. Se completa cuando todas sus ramas completas o cuando suCompletionCondition la propiedad se evala como verdadera. ParallelForEach / La actividad ParallelForEach enumera ParallelForEach los elementos de una coleccin (Valores) y ejecuta una actividad para cada elemento de la coleccin, de una manera similar que la actividad ForEach. La diferencia principal es que la instruccin se ejecuta incrustado en una forma paralela. Al igual que la actividad paralela, ParallelForEach tiene un CompletionCondition, por lo que la actividad ParallelForEach pudo completar antes de tiempo si la evaluacin de la CompletionCondition devuelve true. El CompletionCondition se evala despus de cada iteracin se ha completado.

Manejo de Errores TryCatch

TryCatch actividad es similar a la prueba .. coger la construccin en C #: todas las actividades en el intento de bloque se ejecuta y si se produce una excepcin, se programar la captura bloque que mejor se adapte a esa excepcin (si no se captura coincidente, el flujo de trabajo es abortado). Todos los bloques de captura se encuentran en una coleccin llamada capturas. La actividad TryCatch tambin tiene un ltimo bloque que se ejecuta despus de la Trata (y de cualquier eventual captura). Una nota sobre las excepciones no controladas : TryCatch proporciona el manejo de excepciones en el nivel de flujo de trabajo. Cuando una excepcin no controlada, el flujo de trabajo se interrumpe y por lo tanto, el bloque ltimo, no se ejecutar. Este comportamiento es coherente con C#. Representa un bloque catch para ser utilizado en una actividad TryCatch. Si se produce una excepcin dentro de un elemento intento, el TryCatch intentar encontrar una correspondencia de captura elemento basado en el tipo de la excepcin. Catch slo se puede utilizar dentro de una actividad TryCatch

Catch

Lanzar - Throw

La actividad de tiro se produce una excepcin dentro de un flujo de trabajo. La actividad de tiro tiene una excepcin propiedad que contiene la excepcin de que sern lanzados en tiempo de ejecucin. La actividad de asignacin asigna el valor de su oferta a su argumento a argumentos. Los tipos de los dos argumentos deben ser compatibles. Esta compatibilidad se verifica en tiempo de ejecucin. Posponer la actividad, como su nombre indica, se bloquear la ruta actual de ejecucin de flujo de trabajo por una duracin especificada por el usuario. Despus que la duracin expire, el flujo de trabajo contina con la ejecucin como se esperaba. La duracin de la demora se establece mediante unTimeSpan . InvokeMethod es la actividad que le permite llamar a una instancia existente de CLR o mtodo esttico. Para invocar un mtodo todo lo que necesita hacer es proporcionar al propietario del mtodo (TargetType para los mtodos estticos, TargetObject de los mtodos de instancia), elMethodName , y sus parmetros.

Utilidades Asignar - Assign

Retrasar - Delay

InvokeMethod / InvokeMethod

InvokeMethod soporta los siguientes escenarios mtodo de invocacin: Instancia estticos. pblica y mtodos

Parmetro que se pasan por valor y por referencia Apoyo a las matrices de parmetros Soporte de parmetros genricos Mtodo de invocacin asncrona Escribe texto en la consola de salida configurada. Escribir ms all de la System.Console WriteLine tiene un argumento TextWriter puede ser configurado para escribir en diferentes salidas. Por ejemplo, podemos configurar la propiedad TextWriter para enviar el texto a una pgina ASP.NET. Si el TextWriter no est establecido, que ser fijado por defecto a la consola del sistema. Avanzado (cancelacin, compensacin, las transacciones y persistencia) CancellationScope La actividad CancellationScope consta de dos partes principales, el cuerpo y la CancelHandler .El cuerpo es la ruta de cdigo que se ejecuta normalmente. Si la actividad se cancela, entonces el manejador de cancelacin se llama.

WriteLine

CompensatableActivity CompensableActivity se utiliza para definir una actividad potencialmente de larga data con el acompaamiento de Compensacin y la confirmacin de la lgica. Compensacin permite al usuario especificar las acciones correctivas que deben tomarse en una actividad basada en la actividad que se produce despus de la finalizacin con xito del Cuerpo de la actividad. Compensar Compensar se utiliza para invocar Compensate explcitamente el controlador de compensacin de un CompensableActivity. Confirmar Confirm Confirmar se utiliza para invocar explcitamente el controlador de la confirmacin de un CompensableActivity. Persistir - Persist Persiste la instancia de flujo de trabajo. La persistencia se har utilizando la configuracin de la WorkflowInstance que est siendo ejecutado (esta actividad no tiene ningn argumento). TransactionScopeActivit El TransactionScopeActivity y proporciona el mecanismo para la inicializacin de una nueva transaccin, por lo que la manija de transaccin de ambiente (una propiedad de la ejecucin de flujo de trabajo) y llamando a Complete en la transaccin una vez que el Cuerpo de la actividad TransactionScope se ha completado. TransactionScopeActivity apoya "requiere" la semntica. Si ya hay

una transaccin de ambiente que se utiliza, de lo contrario uno se crea uno nuevo. mbitos anidados de transaccin: TransactionScopeActivity se pueden anidar en otro TransactionScopeActivity. Un TransactionScopeActivity anidado en otro TransactionScopeActivity utilizar la transaccin existente.

DIAGRAMA DE FLUJO Diagrama de flujo es un estilo de modelado de nuevo que hemos introducido en WF4. Diagrama de flujo es un paradigma muy conocido e intuitivo para representar visualmente los procesos de negocio. Los analistas de negocio, arquitectos y desarrolladores utilizan a menudo diagramas de flujo, como lenguaje comn para expresar los procesos. Diagrama de flujo es una construccin muy potente, ya que proporciona la simplicidad de secuencia ms la capacidad de bucle de nuevo a un punto anterior de la ejecucin. Todo esto es transmitido mediante un paradigma conceptual muy conocido que es comn en varias disciplinas ms all de la informtica! Actividad Diagrama de flujo FlowChart Descripcin Diseador Esta es la raz de un diagrama de flujo. Desde diagrama de flujo es una actividad como cualquier otra, puede ser integrado dentro de cualquier actividad de los contenedores. Por ejemplo, podemos aadir un diagrama de flujo en el interior de una secuencia o un diagrama de flujo dentro de otro. La pelota verde en la imagen de la derecha representa el nodo de inicio del Diagrama de flujo.

FlowDecision Modelos FlowDecision tenedores condicional dentro de un diagrama de flujo. Puede verse como el equivalente del procedimiento Si en Diagrama de flujo. Esta actividad contiene una expresin de estado booleana. Si la expresin se evala como "True", se ejecuta el verdadero camino (en caso contrario, el falso camino que est programado). Actividad Flowswitch selecciona un nodo siguiente en funcin del valor de una expresin. Flowswitch puede verse como el equivalente de la actividad del interruptor de procedimiento en el mundo Diagrama de flujo.

Interruptor de flujo Flowswitch

Mensajera Las actividades de mensajera WF4 estn diseadas para soportar flujos de trabajo orientados a mensajes y brindar una mejor integracin de la mensajera en flujos de trabajo. Permiten a los flujos de trabajo enviar datos a otros sistemas y recibir datos de otros sistemas. Estas actividades se pueden componer juntas y junto con la correlacin puede modelar muchos complejos patrones de intercambio de mensajes. Actividad Recibir - Receive Descripcin Diseador Modelos de una forma de recepcin de un mensaje. Se pueden recibir datos de los siguientes tipos: DataContract XmlSerializable y MessageContracts.

ReceiveAndSendReply Esta plantilla de actividad representa una correlacin de actividad de recepcin y la actividad SendReply. Mediante el uso de esta plantilla se puede esperar de un mensaje entrante y enviar una respuesta al remitente. Desde la recepcin y el SendReply se encuentran dentro de una secuencia, puede agregar cualquier actividad entre ellos. Modelos de un envo unidireccional de un mensaje. Se pueden recibir datos de los siguientes tipos: DataContract XmlSerializable y MessageContracts. Esta actividad puede utilizarse de dos maneras: 1. Cliente: esta actividad se puede utilizar para enviar una peticin a un servicio. Esto es equivalente a un cliente WCF llamando una operacin de servicio. Ninguna inferencia contrato se ejecute en el cliente. 2. Por el lado de servidor

Enviar - Send

de la actividad de envo se puede utilizar para enviar una respuesta a una recepcin anterior. En este caso las actividades Enviar y recibir debe tener la misma operationName, Accin y CorrelationHandle. SendAndReceiveReply Esta plantilla de actividad representa una actividad correlacionada Enviar actividad y ReceiveReply. Mediante el uso de esta plantilla se puede enviar un mensaje y esperar una respuesta del destino. Dado que el envo y las actividades ReceiveReply se encuentran dentro de una secuencia, puede agregar cualquier actividad entre ellos. PowerShell Las actividades de PowerShell, como su nombre lo indica, permiten la invocacin de PowerShell cmdlets (commandlets) y los guiones de los programas de WF. Hay que tener en cuenta que si bien estas actividades se incluyen por defecto en la caja de herramientas Beta 1, que no estar disponible en los ltimos bits de la versin RTM cuando soltamos. Esto se debe a. NET Framework no permite tener una dependencia de una tecnologa que no se incluye en el marco. Estamos trabajando en una estrategia a largo plazo aqu, ya que muchos clientes han solicitado las actividades de PowerShell. Para RTM, se encuentran estas actividades en los ejemplos del SDK en su lugar.

Actividad Descripcin Diseador InvokePowerShell Invoca un cmdlet de PowerShell que no tiene un valor de retorno. InvokePowerShell se puede utilizar para invocar cmdlets simples y secuencias de comandos. Tambin puede pasar parmetros y objetos de entrada al cmdlet. Despus de la ejecucin, la actividad proporciona un conjunto de errores (si los hubiere ocurrido). InvokePowerShell Una actividad que se invoca y se recupera el producto resultante de un cmdlet de PowerShell. Este sabor de la actividad tiene todos los mismos argumentos que la versin no genrica, ms InitializationAction uno. El InitializationAction se utiliza para asignar los resultados de la ejecucin del cmdlet a las variables en nuestros flujos de trabajo. Migracin WF 3.xy 4.0 pueden existir uno al lado del otro, pero tambin se puede utilizar WF actividades 3.x de WF4 flujos de trabajo con la actividad de interoperabilidad. Actividad Descripcin Diseador Interop La actividad de la interoperabilidad es una actividad que envuelve WF4 una actividad WF3 (un tipo no abstracto de CLR que se deriva de System.Workflow.ComponentModel.Activity) lo que permite la actividad WF3 para ser utilizado en flujos de trabajo en WF4. Tenga en cuenta que la actividad WF3 puede ser una actividad sola hoja, o un flujo de trabajo compilado (rbol de las actividades).

La actividad de la interoperabilidad de puente para los WF4 WF3 y modelos de actividad de ejecucin, facilita el flujo de datos a travs de la frontera de interoperabilidad, y permite la persistencia y el seguimiento de los casos de actividad dentro de Wf3 WF4 instancias de flujo de trabajo. La actividad de interoperabilidad permite a los desarrolladores de WF para pasar a la modelo de WF4 en forma incremental: Experimentar rpidamente con WF4 utilizando los artefactos de actividad Wf3 Envoltura Wf3 actividades el desarrollador no est dispuesta a redisear el modelo WF4 Los Wrap Wf3 actividades para las que el desarrollador no tiene dueo o poseer el cdigo fuente (por ejemplo, que compr la actividad de un tercero)

Elementos de discusin:

Visin general Plantilla de plantilla vs actualizacin predeterminada Parmetros de plantillao

Existen varias definiciones de compilacin utilizando una plantilla Agregar sus propios parmetros

o

Disear la arquitectura de flujo de trabajoo o o o o o o o

Ejecucin de comandos Mostrar registro Variables Acondicionado Funcin de bucle Secuencia Diagrama de flujo Paralelo

Importaciones Conclusin

En general, llegar a utilizar el enfoque de flujo de trabajo puede ser un poco raro y confuso al principio, pero despus de jugar con l durante algn tiempo, encontrar que algunas tareas previamente difciles se hacen ms simples con el enfoque de flujo de trabajo. Lamentablemente, cada vez que abra un nuevo archivo XAML se cargan de nuevo las actividades de la caja de herramientas que lleva un tiempo antes de que se mostrara el flujo de trabajo completo. Se pueden ver otras actividades disponibles haciendo clic en el cuadro de herramientas y en "Elegir elementos...". Al hacer clic en la opcin de NET Framework Components tomar un tiempo para cargar los componentes disponibles.

Al sealar las expresiones en el editor de XAML, notar que necesita utilizar Visual Basic para formar expresiones. Por ejemplo, para la concatenacin, puede utilizar el carcter ampersand: '&'. Por varias lneas, utilice el carcter de subrayado '_'. Tambin puede copiar los elementos existentes en el editor de XAML a otras reas dentro del flujo de trabajo haciendo clic donde desea copiar el elemento y a continuacin, slo pegar. Conserva los datos del elemento copiado de flujo de trabajo. Cuando trabajando en Visual Studio 2010 team build, quizs nos preguntaremos si se debe o no utilizar la plantilla predeterminada o la plantilla de actualizacin.

Actualizar plantilla

Si va a migrar una gran cantidad de cdigo de msbuild desde un servidor de TFS 2008, entonces probablemente sera mucho ms fcil utilizar la plantilla de actualizacin. La plantilla de actualizacin ajustar un flujo de trabajo muy simple alrededor de una actividad de flujo de trabajo sencilla msbuild que slo hace una cosa: ejecutar TFSBuild.proj. Cuando se ejecuta TFSBuild.proj, pasar en todos los parmetros tpicos msbuild tendr que utilizar el mtodo anterior para la construccin de TFSBuild.proj. La ventaja de este enfoque es que es bastante simple y directo y todava puede agregar tantas otras actividades como parezca conveniente. Una desventaja de esto es que se pierda parte de la flexibilidad del uso de las actividades de flujo de trabajo entre los eventos de generacin de equipo especfico realizados anteriormente en TFS 2008. Por ejemplo, si desea realizar alguna lgica especial antes o despus de compilar las soluciones individuales, no poder utilizar las actividades de flujo de trabajo para ayudar en esto. Toda la lgica tiene

que ser antes o despus de realizar el TFSBuild.proj. Esto incluye la manipulacin del espacio de trabajo, el nmero de compilacin de cambios, insertar buildsteps intermedias, etc. Toda la informacin de solucin o proyecto an ser contenida dentro de los archivos de SolutionToBuild.proj como antes.

Plantilla predeterminada Si se est empezando desde cero, puede valer la pena considerar el desarrollo mediante la DefaultTemplate. Observar que la plantilla es mucho ms grande es y ms compleja porque que la la plantilla que de hara actualizacin. Esto principalmente lgica

normalmente

est

contenida

en:

C:\Program archivos (x 86) \MSBuild \Microsoft\VisualStudio \TeamBuild \Microsoft.TeamFoundation.Build.targets

Ahora figura directamente dentro de la DefaultTemplate.xaml. Aunque esto hace que el flujo de trabajo parezca complicado, da acceso ms fcil a la funcionalidad interna que fue previamente ms complicada cambiar. Por ejemplo, cuando desea aplicar un proceso de construccin de equipo diferente de la forma en que funcion antes, tendra que "anulacin" de esos objetivos contenidas dentro de los objetivos arriba enumerando el mismo destino con la lgica "reemplazado" dentro de su propio TFSBuild.proj (o archivos importados).

Adems, cuando se utiliza la plantilla predeterminada, en que puede cambiar el conjunto de proyectos o soluciones que se construyen en el nivel de definicin de compilacin en lugar de tener que-solucin o el proyecto se convierte en el archivo SolutionToBuild.proj. Esto puede ser agradable si desea construir diferentes conjuntos de proyectos de construccin diferentes definiciones.

Una caracterstica realmente cool en TFS 2010 Team Build es la posibilidad de tener mltiples definiciones de compilacin apuntando a la

misma

plantilla.No

tienes

que

utilizar

el

DefaultTemplate

o

el

UpgradeTemplate si no quieres. De hecho, se recomienda que realice su propia cuando se sienta la necesidad de personalizar una de las plantillas preexistentes. Una vez que tienes una plantilla que es lo suficientemente flexible como para trabajar diferente basndose en los parmetros que se pasan en, entonces slo cambia la ficha de proceso para la definicin de compilacin diferentes apuntar a la misma plantilla, pero pasar parmetros diferentes.

Cuando abra una nueva definicin de compilacin en team explorer y haga clic en la ficha procesos, ver un montn de diferentes parmetros que puede ajustar para una definicin de compilacin. Estos campos estn definidos dentro de la plantilla XAML. Cuando abre un archivo de plantilla XAML, ver tres fichas en la parte inferior del flujo de trabajo visual: Variables, argumentos y las importaciones. En la ficha de argumentos, puede especificar los parmetros de entrada pasados a la plantilla para el procesamiento de la definicin de compilacin. Como visible en la pantalla para crear los argumentos, tambin puede especificar para los tipos y los valores ello. predeterminados

Puede consultar estos parmetros a lo largo de la plantilla de flujo de trabajo XAML slo iniciando escribir el nombre del parmetro dentro de un campo que se utiliza ms tarde en su flujo de trabajo. IntelliSense recoger los parmetros.

Una de las habilidades ms bsicas que es bueno realizar es la capacidad para ejecutar algunos comandos de shell basado. Por ejemplo, en secuencias de comandos de msbuild podra utilizar la tarea personalizada Exec para ejecutar algunos comandos (es decir, ejecutar algunos ejecutables personalizados). Una molestia con el comando Exec es la incapacidad para capturar y procesar directamente la salida del comando. Bsicamente, usted debe canalizar la salida a un archivo de texto y, a continuacin, lea el archivo de texto y recuperar la informacin deseada.

Felizmente, WF4 hace esto tan bonito introduciendo la actividad InvokeProcess. La actividad le permite ejecutar cualquier ejecutable proporcionado a travs del campo "FileName" y, a continuacin, pasar el ejecutable argumentos que desea manejar (como un comando de shell).

La belleza de la utilizacin de InvokeProcess es que puede capturar o realizar a algn tipo de lgica basada en la actividad de la produccin ya sea desde la salida estndar o error flujos de salida inmediatamente.

Cuando desea mostrar algo en el explorador de construir al edificio, todava puede mostrar elementos usando la tarea personalizada BuildStep cuando se utiliza la plantilla predeterminada y llamando a los pasos de compilacin dentro de secuencias de comandos de msbuild. Al intentar mostrar la informacin en el explorador de construir fuera del contexto de msbuild, puede utilizar las actividades de flujo de trabajo para mostrar informacin acerca de la generacin que se est ejecutando. Hay tres actividades simples que pueden ayudar con esto:

WriteBuildMessage WriteBuildWarning WriteBuildError

WriteBuildMessage mostrar mensajes de llano en BuildExplorer. Se muestra como texto puro a diferencia de la BuildSteps normal puede ser acostumbrados, que muestran el crculo verde. El problema con WriteBuildMessage es que no mostrar los mensajes si tienes detalle mnimo establecido. Se debe establecer el nivel de detalle en normal o superior para ver estos mensajes. Tambin tendr que establecer la propiedad de importancia para esta actividad "alta". WriteBuildWarning mostrar la marca tringulo y signo de exclamacin amarillo y tambin no se mostrarn con un mnimo de depuracin. Una vez que se cambia a la depuracin normal, podr ver todos los avisos (personalizados generados y las advertencias generadas por la generacin). WriteBuildError mostrar el crculo rojo mostrando que un error fue revelado.Estos personalizado generados errores no detener la generacin, pero har el estado final no mostrar xito. El problema principal es si tienen una enorme cantidad de advertencias y desea eliminar las advertencias, pero tambin desea ver los mensajes de generacin. O bien obtener a su regular generar mensajes y advertencias o obtendr ninguno. Afortunadamente, cuando se utiliza la mayora de las actividades, todava presentan mensajes con el ttulo o la descripcin de la actividad que se est mostrando.

En TFS 2008 Team Build, el alcance de las propiedades eran muy complicado.La mayora del tiempo valores tenan que continuamente se pasa alrededor o agrupar en bloques DependsOn mantener valores a travs de objetivos, sino en TFS 2010 Team Build s mucho ms fcil. Una vez que tienes una plantilla XAML abierto puede haga clic en la ficha Variables y crear cualquier propiedad con cualquiera.Tipo de red escribiendo el nombre de la nueva variable y haciendo clic en el men de cada para el tipo y seleccionando "Buscar por tipo...". A continuacin, puede buscar todos.Namespace neto para el tipo que busca y, a continuacin, haga clic en l.

Una vez que tenga la configuracin variable, puede determinar el mbito de aplicacin. Por ejemplo, variables creadas con el alcance de la "Secuencia" son accesibles en toda la secuencia (que es la principal actividad del flujo de trabajo). Si tiene diferentes actividades que se ejecutan en mquinas de construccin diferentes puede elegir el alcance de "Ejecutar el agente" que es especfico para un mquina/agente de compilacin. Puede dar un valor predeterminado a la variable y tambin asignar variables en cualquier etapa del camino mediante la actividad de "Asignar" bajo la seccin primitivas en el cuadro de herramientas.

La duracin completa de.NET acondicionado est disponible en WF4. Tienes acceso a conmutadores, if/then y el tpico.NET basadas en conceptos de ramificacin.

Tambin estn el intento esperado, capturas, as como las actividades de la excepcin. Por ejemplo, si se produce una excepcin, mostrar la excepcin y detener el flujo de trabajo.

Hay unas actividades que pueden parecer un poco inusuales que tambin ayuda en el desempeo de manejo diferentes tcnicas tales como manejo de cancelaciones o realizar recuperacin si algo se rompe ms tarde en el flujo de trabajo.

Por ejemplo, la actividad de CancellationScope es una actividad de contenedor donde si se puede incrustar una actividad dentro de la actividad CancellationScope. Tambin proporcionan una actividad CancellationHandler.Esto significa que si se cancela el flujo de trabajo mientras se ejecuta la actividad de basketbol, entonces llamar la actividad dada dentro de la parte de CancellationHandler. Esto permite la recuperacin personalizada de una cancelacin.

Otro algo ms avanzada, pero confuso actividad es el CompensableActivity, que se ejecutar una determinada actividad de "Cuerpo". Basndose en diversas circunstancias, se llamar controladores diferentes. Por ejemplo, si se cancela la actividad, llamar a la actividad como la CancellationHandler. Si los saltos de flujo de trabajo en cualquier lugar despus de la CompensableActivity todo est terminado de ejecutar correctamente, entonces llamar a la actividad como la CompensationHandler. De lo contrario, si el flujo de trabajo completo finaliza correctamente, entonces llamar el ConfirmationHandler. Un ejemplo comn de esto, es si el "cuerpo" es programar un vuelo. Si el vuelo se cancela durante la programacin del vuelo, entonces slo cancela el vuelo de programacin. Si despus de programar el vuelo con xito, programar un hotel y hacer algunas otras programacin aleatoria. Si el vuelo est programado correctamente, pero digamos que error en la programacin de hotel y, a continuacin, desea tambin proporcionan alguna forma de cancelar el vuelo as desde no podr ir en el viaje de todos modos.

Puede utilizar ms de lo normal.NET bucle estructuras como ForEach, mientras y DoWhile aunque no hay una actividad prevista un tpico "bucle for".

Mientras DoWhile son bastante sencillas proporcionando simplemente la actividad corporal y la condicin para continuar para ejecutar la actividad de cuerpo ms y ms, la nica diferencia, por supuesto, es que DoWhile se ejecutar una vez independientemente de la condicin.

El ForEach es genrico para que tenga que configurar las propiedades de la actividad indicar el tipo de elemento individual que estar tirando de la coleccin. El primer campo es representar el nombre del elemento individual.Dentro de la expresin slo da el nombre de la variable de la coleccin. Al configurar la actividad corporal, el nombre del elemento es dentro del mbito del cuerpo de la actividad foreach y puede ser visitado en consecuencia.

La actividad de la secuencia se conoce como una actividad compuesta, ya que permite otras actividades para colocarse dentro de ella. Si necesita agrupar un conjunto de actividades dentro de una actividad "single", simple colocar una secuencia dentro del marcador de posicin de la actividad "single" y, a continuacin, soltar todas las actividades necesarias dentro de la secuencia. Tenga en cuenta que a diferencia de los diagramas de flujo, no puedes ir atrs anteriores en una lista de actividades si usted ya ha atravesado la lista.

Diagrama de flujo Diagramas de flujo son forma de flujo de trabajo de permitir a los diseadores volver atrs y repita los pasos anteriores ya ejecutados y navegar ms libremente direccionalmente.

Aqu estn los resultados:

Es importante tener en cuenta que puede que tenga que incluir algunas referencias de ensamblado adicional para que la actividad de diagrama

de flujo puede funcionar correctamente (necesario en RTM). Si est viendo el siguiente error:

TF215097: Error al inicializar una compilacin para la definicin de compilacin [construir definicin] no puede crear el tipo desconocido ' {http://schemas.microsoft.com/winfx/2006/xaml/presentation}PointColl ection'.

Intente agregar las siguientes lneas de importacin en la parte superior del archivo .xaml: xmlns:swm = "clr-namespace:System.Windows.Media; Asamblea = WindowsBase, Version = 4.0.0.0, cultura = neutral, PublicKeyToken = 31bf3856ad364e35" xmlns:swm1 = "clr-namespace:System.Windows.Media; Asamblea = PresentationCore, Version = 4.0.0.0, cultura = neutral, PublicKeyToken = 31bf3856ad364e35" Tambin, si tienes problemas de visualizacin grfica en el diagrama de flujo detiene la visualizacin, tratar de dejar que Windows (es decir, 7) ajustar para mejor apariencia o "dejar que Windows elija lo que es mejor para mi equipo" en la configuracin avanzada de sistema seccin "Efectos visuales".

La actividad paralela es nica porque las actividades que se colocan dentro de ella pueden colocarse junto al otro, lo que permite la flexibilidad necesaria para ejecutar varias tareas al mismo tiempo. Una aplicacin interesante de esto es ejecutar tareas en varios agentes de compilacin. Por ejemplo, puede colocar varias actividades de AgentScope junto a otra que permite la capacidad de reproducirse fuera de diferentes actividades en diversos equipos de generacin para acelerar el rendimiento de generacin.

Importaciones En TFS 2008 no poda utilizar fcilmente las importaciones msbuild porque el archivo TFSBuild.proj sera intentar e importar los archivos antes de realizar el llegar a extraer archivos de control de cdigo fuente. Este tipo de escenario no es un problema en TFS 2010, porque puede utilizar actividades tales como la actividad de DownloadFiles para ejecutar antes de ejecutar la actividad de MSBuild para que estos archivos estn disponibles localmente antes de ejecutar la lgica anterior sobre la TFSBuild.proj. Por supuesto, esto slo se aplica si est utilizando el UpgradeTemplate.xaml. Si est utilizando la DefaultTemplate, tiene ms flexibilidad.

Windows Workflow Foundation (WF4) es una buena integracin de todas las capacidades de generacin anterior disponibles en MSBuild 3.5 TFS 2008 Team Build, al agregar muchos tiles fluyan de funciones de control que fueron ms difciles si no casi imposible en TFS 2008.