我有一个 NAnt <exec>
任务。我希望一个参数存在以某些属性为条件 true
.
例如,我想要 -c
psExec 的命令行参数是有条件的。只有在 ${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.
我怎样才能做到这一点?
最佳答案
NAnt 中的属性很棘手,因为它们没有类型,只是被视为类型 string
.所以这将是解决方案:
<exec program="${psExec.path}" failonerror="false">
<!-- ... -->
<arg line="-c" if="${bool::parse(psExec.copyprog)}" />
</exec>
更新:我的罪过!我错了。
if="${psExec.copyprog}"
也行。所以有某种属性类型。
关于nant - 在 NAnt <exec> 中,如何根据属性值设置条件 <arg>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15167620/