8

NAnt<exec>タスクがあります。1つの引数の存在が、あるプロパティがであるという条件付きである必要がありますtrue

たとえば、-cpsExecのコマンドライン引数を条件付きにする必要があります。の場合にのみ出力する必要があります${pExec.copyprog == 'true'}

以下は機能しません。

<property name="psExec.copyprog" value="false" />
...

<exec program="${psExec.path}" failonerror="false">
   ...
   <arg line="-c" if="${psExec.copyprog}==true" />
</exec>

次のエラーが発生します。

'false==true' is not a valid value for attribute 'if' of <arg ... />.
    Cannot resolve 'false==true' to boolean value.
       String was not recognized as a valid Boolean.

どうすればこれを達成できますか?

4

2 に答える 2

6

NAntのプロパティは、型がなく、単に型と見なされるため、注意が必要ですstring。したがって、これが解決策になります。

<exec program="${psExec.path}" failonerror="false">
  <!-- ... -->
  <arg line="-c" if="${bool::parse(psExec.copyprog)}" />
</exec>

更新: Mea culpa!私は間違っていた。if="${psExec.copyprog}"も動作します。したがって、ある種のプロパティ入力があります。

于 2013-03-02T06:50:15.560 に答える
3

==true中に入れる必要{}がありますが、スキップすることもできます。

<arg line="-c" if="${psExec.copyprog}" />  

trueブール式をと比較しtrueても、結果は変わりません。

于 2013-03-03T15:12:44.317 に答える