NAnt: cannot resolve to boolean value
<if test="${deployErrors} > 0">
<fail message="MSDeploy failed" />
</if>
${deployErrors}
is populated from a regex capture group and either has a numeric value or empty string. How can I check if this is greater than 0 in a NAnt if block? Here's the error I'm getting if deploy errors contains '1'
'1 > 0' is not a valid value for attribute 'test' of . Cannot resolve '1 > 0' to boolean value. String was not reco开发者_如何学编程gnized as a valid Boolean.
I've not tried it, but I think you need the whole of your expression within the curly braces:
<if test="${deployErrors > 0}">
See also the second example in the documentation page.
Update from OP:
This worked:
<if test="${deployErrors != ''}">
If you need to do something with the actual numeric value then you could do something like this:
<if test="${int::parse('0' + deployErrors) > 10}">
Similar to Trystan's answer - to parse a string to a bool, for a string e.g. true
, false
<if test="${bool::parse(isEnabled)}">
From http://nant.sourceforge.net/release/0.85/help/functions/bool.parse.html
精彩评论