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 ![]()
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