Mi piacerebbe chiamare un determinato EXE dal mio script NAnt e passare una proprietà come argomento nel caso in cui la proprietà esista, o non passare nulla altrimenti.Come passare argomento all'attività exec NAnt in modo condizionale in base all'esistenza della proprietà?
Il codice qui sotto sembra adattarsi solo per questo caso, ma non funziona:
<exec program="notepad.exe">
<arg line="${file}" if="${property::exists('file')}" />
</exec>
E gettare Property 'file' has not been set
errore. Sembra che valuti la proprietà ignorando la condizione. Mi aspetto che ignori l'intero elemento <arg>
nel caso in cui la sua condizione sia false
.
Se definisco la proprietà sopra questo blocco, ovviamente funziona correttamente (anche se la proprietà è vuota). Potrebbe valere una soluzione alternativa se si tratta di un singolo caso, ma devo passare un numero di proprietà allo stesso modo. Inoltre, <if>
non è un elemento valido in <exec>
...
Come ottenere ciò? Qualche idea?
Puoi opzionalmente impostare il valore predefinito della stessa variabile che stai leggendo. Questo sembra più chiaro ed è invece una singola affermazione. –
BradLaney
In base al tuo caso d'uso, intendi quanto segue per il tuo secondo snippet di codice? –