У NAnt есть задача if/then/else?

Другие системы сборки, например Ant, имеют конструкцию if/then/else, которая во многих случаях позволяет упростить логику скрипта. Вариант CIFactory NAnt также имеет это (<ifthenelse/>), но крайне устарел и не поддерживает.NET 4.0 - тем не менее, обновление вашей версии NAnt из CIFactory до официальной сборки усложняет ваши сценарии сборки, потому что теперь вам нужно два <if/> задачи, одна с исходным условием, одна с отрицанием.

Возможно ли в NAnt достичь потока if/then/else с одним условием?

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>
Другие вопросы по тегам