NAnt: невозможно разрешить до логического значения - PullRequest
7 голосов
/ 05 мая 2011
<if test="${deployErrors} &gt; 0">
   <fail message="MSDeploy failed" />
</if>

${deployErrors} заполняется из группы захвата регулярных выражений и имеет либо числовое значение, либо пустую строку. Как я могу проверить, больше ли это 0 в блоке NAnt if? Вот ошибка, которую я получаю, если ошибки развертывания содержат '1'

'1> 0' не является допустимым значением для атрибут "тест" из. Невозможно разрешить '1> 0' в логическое значение. Строка не была распознана как допустимое логическое значение.

Ответы [ 3 ]

8 голосов
/ 06 мая 2011

Я не пробовал это, но я думаю, что вам нужно все ваше выражение в фигурных скобках:

<if test="${deployErrors > 0}">

См. Также второй пример на странице документации.

Обновление с OP :

Это сработало:

<if test="${deployErrors != ''}">
4 голосов
/ 07 июня 2011

Если вам нужно что-то сделать с фактическим числовым значением, вы можете сделать что-то вроде этого:

<if test="${int::parse('0' + deployErrors) > 10}">
0 голосов
/ 18 марта 2014

Аналогично ответу Тристана - для анализа строки в bool, например, для строки. true, false

<if test="${bool::parse(isEnabled)}">

С http://nant.sourceforge.net/release/0.85/help/functions/bool.parse.html

...