Ich möchte eine bestimmte EXE von meinem NAnt Skript aufrufen, und eine Eigenschaft als Argument übergeben, falls die Eigenschaft vorhanden, oder irgendetwas nicht anders passieren.Wie übergeben Sie das Argument an die NAnt-Exec-Task basierend auf der Eigenschaft existence?
Der Code unten scheint nur für diesen Fall zu passen, aber es funktioniert nicht:
<exec program="notepad.exe">
<arg line="${file}" if="${property::exists('file')}" />
</exec>
Es Property 'file' has not been set
Fehler werfen. Sieht so aus, als werte es die Eigenschaft und ignoriert die Bedingung. Ich würde erwarten, dass es das gesamte <arg>
Element ignoriert, falls sein Zustand false
ist.
Wenn ich die Eigenschaft über diesen Block zu definieren, ist es offensichtlich gut funktioniert (auch wenn die Eigenschaft leer ist). Es könnte eine Umgehungslösung wert sein, wenn es sich um einen einzelnen Fall handelt, aber ich muss eine Reihe von Eigenschaften auf die gleiche Weise übergeben. Außerdem ist <if>
kein gültiges Element unter <exec>
...
Wie erreicht man das? Irgendwelche Ideen?
Sie können optional den Standard der gleichen Variablen festlegen, die Sie gerade lesen. Dies scheint klarer und ist stattdessen eine einzelne Aussage. –
BradLaney
Meinst du basierend auf deinem Anwendungsfall Folgendes für dein zweites Code-Snippet? –