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