NAnt:无法解析为布尔值

发布于 2024-11-05 08:32:48 字数 349 浏览 2 评论 0原文

<if test="${deployErrors} &gt; 0">
   <fail message="MSDeploy failed" />
</if>

${deployErrors} 由正则表达式捕获组填充,并且具有数值或空字符串。如何检查 NAnt if 块中的值是否大于 0?如果部署错误包含“1”,这是我收到的错误

'1> 0' 不是有效值 的属性“测试”。 无法解析 '1 > 0' 为布尔值。 字符串未被识别为有效的布尔值。

<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 recognized as a valid Boolean.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

入画浅相思 2024-11-12 08:32:48

我没有尝试过,但我认为你需要将整个表达式放在大括号内:

另请参阅文档页面中的第二个示例。

从 OP 更新

这有效:

<if test="${deployErrors != ''}">

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 != ''}">
请帮我爱他 2024-11-12 08:32:48

如果您需要对实际数值执行某些操作,那么您可以执行以下操作:

<if test="${int::parse('0' + deployErrors) > 10}">

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}">
深居我梦 2024-11-12 08:32:48

类似于 Trystan 的答案 - 将字符串解析为布尔值,对于字符串,例如 truefalse

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

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文