【问题标题】:Does NAnt have an if/then/else task?NAnt 有 if/then/else 任务吗?
【发布时间】:2012-10-21 19:00:16
【问题描述】:

其他构建系统,例如Ant,有一个 if/then/else 结构,可以在许多情况下简化脚本逻辑。 CIFactory NAnt 变体也具有此功能 (<ifthenelse/>),但是非常过时并且不支持 .NET 4.0 - 尽管如此,将您的 NAnt 版本从 CIFactory 更新到正式版本会使您的构建脚本不必要地复杂化,因为您现在需要两个 @ 987654322@个任务,一个带原条件,一个带否定。

在 NAnt 中是否有可能在单个条件下实现 if/then/else 流程?

【问题讨论】:

    标签: nant nantcontrib


    【解决方案1】:

    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>
    

    【讨论】:

      猜你喜欢
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-05
      相关资源
      最近更新 更多