其他构建系统,例如Ant,有一个 if / then / else 结构,允许在许多情况下简化脚本逻辑。 CIFactory NAnt变体也具有此功能(<ifthenelse/>
),但是它已经过时且不支持.NET 4.0 - 然而,将您的NAnt版本从CIFactory更新为官方版本会使您的构建脚本不必要地复杂化,因为您现在需要两个<if/>
任务,一个具有原始条件,一个具有否定。
在NAnt中是否可以使用单一条件实现 if / then / else 流程?
答案 0 :(得分:14)
在NAnt 0.92中,已从NAnt-contrib升级<choose/>
任务,只需对测试进行一次评估,即可实现 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>