nant - 在 NAnt <exec> 中,如何根据属性值设置条件 <arg>?

标签 nant

我有一个 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/

相关文章:

c# - Nant 没有看到引用

batch-file - 在 nant 中调用批处理文件

c# - 使用 C# 创建自定义 NANT 文件

nant - FailOnError 在自定义 NAnt 任务中不起作用

nant - nAnt删除7天以上的文件

jenkins - 如何使用 jenkinsfile 为 Windows 中的管道作业进行 Nant 构建?

c# - 如何替换已弃用的 csc ant 任务

cruisecontrol.net - 在开发人员/构建机器上部署 biztalk

svn - 持续集成中的清洁构建

.net - NAnt 最佳实践