7/9/2010 7:40 El Bruno

[MSBUILD] Definiendo propiedades en Tareas autocontenidas/Inline Tasks (XII)

image47dd1de4

Buenas,

en mi post anterior comentaba sobre las nuevas Inline Tasks introducidas en MSBuild 4.0. Además de poder crear y definir este tipo de tareas, es posible también definir propiedades de Input y Output para utilizarlos en la definición de la tarea. Las mismas se definen dentro del elemento <ParameterGroup /> y pueden definir características propias como por ejemplo, el tipo de dato de la propiedad, si es requerida, o si es de tipo Output.

El siguiente proyecto define un parámetro de tipo Boolean en la línea 12, y de acuerdo al valor del mismo, se muestra un Warning o un Error en la consola de Output. Cuando se invoca a la tarea (línea 5), se le pasa el valor correspondiente:

   1: <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
   2:          ToolsVersion="4.0"
   3:          InitialTargets="Target1">
   4:   <Target Name="Target1">
   5:     <ParamSample DisplayWarning="false" />
   6:   </Target>
   7:   <UsingTask
   8:         TaskName="ParamSample"
   9:         TaskFactory="CodeTaskFactory"
  10:         AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" >
  11:     <ParameterGroup>
  12:       <DisplayWarning ParameterType="System.Boolean" Required="true"  />
  13:     </ParameterGroup>
  14:     <Task>
  15:       <Using Namespace="System"/>
  16:       <Code Type="Fragment" Language="cs">
  17:         <![CDATA[
  18: if(DisplayWarning)
  19:   {Log.LogWarning("Hola Valentino!");}
  20: else
  21:  {Log.LogError("Hola Martina!");}
  22: ]]>
  23:       </Code>
  24:     </Task>
  25:   </UsingTask>
  26: </Project>

Este es el resultado con el parámetro en FALSE:

image

Y este es el resultado con el parámetro en TRUE:

image

 

Como además la propiedad es requerida, si no se le pasa un valor a la misma, pues tendremos un error similar al siguiente:

image

 

El siguiente proyecto es similar, pero en el mismo se define una propiedad del tipo Int32 y con el valor de la misma se recorre un bucle FOR, y se muestra un mensaje muy pobre:

   1: <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
   2:          ToolsVersion="4.0"
   3:          InitialTargets="Target1">
   4:   <Target Name="Target1">
   5:     <ParamSample Iteration="55"/>
   6:   </Target>
   7:   <UsingTask
   8:         TaskName="ParamSample"
   9:         TaskFactory="CodeTaskFactory"
  10:         AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" >
  11:     <ParameterGroup>
  12:       <Iteration ParameterType="System.Int32" />
  13:     </ParameterGroup>
  14:     <Task>
  15:       <Using Namespace="System"/>
  16:       <Code Type="Fragment" Language="cs">
  17:         <![CDATA[
  18: for(int i = 0; i < Iteration; i++)
  19:   Log.LogMessage("i: " + i.ToString());
  20: ]]>
  21:       </Code>
  22:     </Task>
  23:   </UsingTask>
  24: </Project>

El resultado es el siguiente:

image

 

Saludos @ Home

El Bruno (@elbruno en Twitter)

Archivado en: ,,,
Comparte este post:

# [MSBUILD] Gestionando errores de compilación en Tareas autocontenidas/Inline Tasks (XIII)

Friday, September 10, 2010 9:24 AM by El Bruno

Buenas, en el post anterior comentaba sobre la capacidad de definir propiedades además de un poco de

# [MSBUILD] Gestionando errores de compilaci&#243;n en Tareas autocontenidas/Inline Tasks (XIII)

Friday, September 10, 2010 9:24 AM by El Bruno

Buenas, en el post anterior comentaba sobre la capacidad de definir propiedades además de un poco de

# [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