image47dd1de4

Buenas,

siempre que tengo que procesar una condición para setear el valor de una propiedad, termino haciendo unas líneas muy raras de MSBuild.  Me voy a apuntar este post para que dentro de 2 horas no se me olvide como lo resuelvo de una forma simple.

En el siguiente ejemplo, vemos que en el Target1 se muestra el valor de la propiedad $(Log). El valor de la misma se procesa entre las líneas 4 y 8, y dependiendo si existe o no un archivo de log, la propiedad puede tomar los valores:

  • No hay Log
  • c:\file1.log
  • c:\file2.log
 1: <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"

 

 2:              InitialTargets="Target1">

 

 3:   <PropertyGroup>

 

 4:     <Log1>c:\file1.log</Log1>

 

 5:     <Log2>c:\file2.log</Log2>

 

 6:     <Log>No hay Log</Log>

 

 7:     <Log Condition="Exists('$(Log1)')">$(Log1)</Log>

 

 8:     <Log Condition="Exists('$(Log2)')">$(Log2)</Log>

 

 9:   </PropertyGroup>

 

 10:   <Target Name="Target1">

 

 11:     <Message Text="Start Demo" />

 

 12:     <Message Text="Log: $(Log)" />

 

 13:   </Target>

 

 14: </Project>

 

Simple y sencillo Open-mouthed smile

Saludos @ Here

El Bruno

   

Update: Thanks a @pablonete @hhariri por aclararme que la palabra setear no sólo no existe sino que además es agresiva a la vista 😀

 

Leave a comment

Discover more from El Bruno

Subscribe now to keep reading and get access to the full archive.

Continue reading