NAnt 0.92 では、プロパティを定義し、すぐにその存在を確認します。存在しません...しかし、呼び出されたターゲットに存在します。これはバグですか、それとも機能ですか?!? ドキュメントを検索しましたが、それについての言及が見つかりませんでした。
<target name="test">
<property name="testprop" value="test value" />
<echo message="property value = ${testprop}" />
<if test="${property::exists(testprop)}">
<echo message="property exists, as it should!" />
</if>
<if test="${not property::exists(testprop)}">
<echo message="property doesn't exists... WTF?" />
</if>
<call target="test2" />
</target>
<target name="test2">
<echo message="property value in sub-target = ${testprop}" />
</target>
出力:
テスト:
[echo] property value = test value
[echo] property doesn't exists... WTF?
テスト2:
[echo] property value in sub-target = test value