Der Zugriff auf die NAnt-Properties ist meiner Meinung nach etwas unglücklich gewählt, da zwei verschiedene Varianten je nach Kontext benutzt werden müssen.
Folgendes Beispiel zeigt sehr schön die beiden Varianten, wie NAnt-Properties im jeweiligen Zusammenhang angewendet werden müssen:
<delete file="${Directory}${File}.new"
if="${file::exists(Directory + '' + File + '.new')}" />
if="${file::exists(Directory + '' + File + '.new')}" />
Dieser Befehl löscht die Datei, falls sie vorhanden ist. Für den Dateinamen muss die Syntax mit dem ${} benutz werden, die so genannte ‚property expansion‘.
Für die Bedingung wird dann die Methode für den Zugriff auf das Property innerhalb einer Expression benutzt. Dabei wird auf ${} verzichtet.