NAnt有if/then/else任务吗?

5

其他构建系统,例如 Ant,具有一个 if/then/else 结构,可以在许多情况下简化脚本逻辑。CIFactory NAnt 变体也有这个结构(<ifthenelse/>),但非常过时,不支持 .NET 4.0——尽管如此,将 NAnt 版本从 CIFactory 更新到官方版本无意义地使您的构建脚本变得复杂,因为现在您需要两个 <if/> 任务,一个是原始条件,另一个是否定条件。

在 NAnt 中是否可能通过单一条件实现 if/then/else 流程?

1个回答

15
NAnt 0.92中,一个<choose/>任务已经从NAnt-contrib中提升,并允许您通过仅对测试条件进行一次评估来实现if/then/else效果。例如:
<property name="operatingSystem"
  value="${operating-system::to-string(environment::get-operating-system())}" /> 
<choose>
  <when test="${string::contains(operatingSystem, 'Windows')}">
    <echo message="Running on Microsoft Windows" />
  </when>
  <otherwise>
    <echo message="Are we running on Linux?" />
  </otherwise>
</choose>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接