14/9/2010 10:58 El Bruno

[MSBUILD] Nuevos Targets en MSBuild 4.0: BeforeTargets y AfterTargets (XV)

image47dd1de4

Buenas,

otra de las novedades en MSBuild 4.0, son dos nuevos targets BeforeTargets y AfterTargets. Hasta la versión 3.5 los MSBuild Targets se definen si el comienzo de un Target depende de la salida de otro Target; utilizando varios atributos para especificar el orden en el que se ejecutan los mismos:

  • Initial targets
  • Default targets
  • First target
  • Target dependencies

Ahora en MSBuild 4.0, se han agregado RunBeforeTargets y RunAfterTargets (MSBuild 4.0) que permiten definir los Targets que se ejecutarán antes y después de un determinado Target.

El siguiente ejemplo posee 3 Targets, y en el atributo de proyecto InitialTargets (línea 3) se los define en el siguiente orden:

  • Target 3
  • Target 2
  • Target 1
   1: <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
   2:          ToolsVersion="4.0"
   3:          InitialTargets="Target3; Target2; Target1">
   4:   <Target Name="Target1" >
   5:     <Message Text="Target1" />
   6:   </Target>
   7:   <Target Name="Target2">
   8:     <Message Text="Target2" Importance="high" />
   9:   </Target>
  10:   <Target Name="Target3">
  11:     <Message Text="Target3" Importance="high" />
  12:   </Target>
  13: </Project>

 

Cuando ejecutamos este proyecto el output del mismo es el siguiente, donde se puede ver como se respeta el orden definido en InitialTargets:

image

 

El siguiente proyecto agrega una pequeña modificación en el Target1 (línea 4), que se define que antes de ejecutar el Target1, se ejecute el Target2.

   1: <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
   2:          ToolsVersion="4.0"
   3:          InitialTargets="Target3; Target2; Target1">
   4:   <Target Name="Target1" BeforeTargets="Target2" >
   5:     <Message Text="Target1" />
   6:   </Target>
   7:   <Target Name="Target2">
   8:     <Message Text="Target2" Importance="high" />
   9:   </Target>
  10:   <Target Name="Target3">
  11:     <Message Text="Target3" Importance="high" />
  12:   </Target>
  13: </Project>

 

La compilación del proyecto es la siguiente, en la que se puede ver el cambio de orden en la ejecución de los Targets:

image

 

Saludos @ Here

El Bruno (@elbruno en Twitter)

Archivado en: ,,,
Comparte este post:

# re: [MSBUILD] Nuevos Targets en MSBuild 4.0: BeforeTargets y AfterTargets (XV)

Tuesday, September 14, 2010 1:49 PM by pregunton cojonero

el msbuild 4.0 y el msbuild (versión anterior con vs2008) pueden convivir en la misma máquina, es decir, que tenga vs2008 y vs2010 en la misma máquina ?? salu2grz

# re: [MSBUILD] Nuevos Targets en MSBuild 4.0: BeforeTargets y AfterTargets (XV)

Tuesday, September 14, 2010 4:28 PM by El Bruno

@pregunton, pues si: pueden convivir sin problemas :D

Salu2

# [MSBUILD] Recopilación de posts para comenzar a conocer MSBuild

Wednesday, September 15, 2010 3:45 PM by El Bruno

Buenas, después de casi un mes de escribir un poco de MSBuild , a continuación el listado de los posts

# [MSBUILD] Recopilaci&#243;n de posts para comenzar a conocer MSBuild

Wednesday, September 15, 2010 3:46 PM by El Bruno

Buenas, después de casi un mes de escribir un poco de MSBuild , a continuación el listado de los posts

# [MSBUILD] Recopilatorio de enlaces para comenzar a conocer MSBuild (II)

Thursday, October 28, 2010 8:40 AM by El Bruno

Buenas, actualización de la lista de enlaces para dar los primeros pasos con MSBuild . Cómo empezar

# [#MSBUILD] Recopilatorio de enlaces para comenzar a conocer MSBuild (III)

Tuesday, September 27, 2011 9:10 PM by El Bruno

Buenas, actualización de la lista de enlaces para dar los primeros pasos con MSBuild . Cómo

# [#MSBUILD] Recopilatorio de enlaces para comenzar a conocer MSBuild (III)

Wednesday, September 28, 2011 8:34 PM by El Bruno

Buenas, actualización de la lista de enlaces para dar los primeros pasos con MSBuild . Cómo