Me gustaría llamar a un determinado EXE de mi script NAnt, y pasar una propiedad como argumento en caso de que exista la propiedad, o no pasar nada de lo contrario.¿Cómo pasar argumentos a la tarea del ejecutor NAnt condicionalmente en función de la existencia de la propiedad?
El código de abajo parece encajar sólo para este caso, pero no funciona:
<exec program="notepad.exe">
<arg line="${file}" if="${property::exists('file')}" />
</exec>
Es tirar Property 'file' has not been set
error. Parece que evalúa la propiedad ignorando la condición. Esperaría que ignore todo el elemento <arg>
en caso de que su condición sea false
.
Si defino la propiedad sobre este bloque, obviamente funciona bien (incluso si la propiedad está vacía). Podría valer la pena una solución si es un caso único, pero tengo que pasar varias propiedades de la misma manera. Además, <if>
no es un elemento válido en <exec>
...
¿Cómo lograr esto? ¿Algunas ideas?
Opcionalmente, puede establecer el valor predeterminado de la misma variable que está leyendo. Esto parece más claro y es una sola declaración en su lugar. –
BradLaney
Según su caso de uso, ¿quiere decir lo siguiente para su segundo fragmento de código? –