如何从NANT返回特定的退出代码?

时间:2011-08-17 07:46:21

标签: nant

我有一个非常的脚本,我看到即使我的执行失败,NANT的退出代码仍为0。如何更改NANT退出代码?

2 个答案:

答案 0 :(得分:1)

exec task有一个名为“resultproperty”的属性,可以获取退出代码。

答案 1 :(得分:1)

从NANT

返回特定退出代码

如果构建成功,NANT将以代码0退出,如果构建使代码1的NANT失败,您可以使用<fail>强制执行此操作。 NANT没有提供其他方法来控制退出代码,但是你可能会破解它:

<script language="C#">
    <code>
        <![CDATA[
        public static void ScriptMain(Project project) 
        { 
            System.Environment.Exit(3);
        }
        ]]>
    </code>
</script>

这将立即结束,所以也许您可能希望通过将目标放在 nant.onsuccess 中来创建目标。

<exec>失败时,为什么NA​​NT退出代码为0?

当命令以0以外的任何东西退出时,

<exec>失败。通常这导致整个构建失败,NANT退出代码1,有两个例外(见2和3)。这给了我们三种可能的解释:

  1. 您的命令失败,但无论如何都以0退出(这是一种相对常见的行为)。设置resultproperty属性并检查属性。
  2. failonerror="False"属性已设置在<exec>或更高级别(<nant><call>)上。检查NANT输出以查看正在调用目标的顺序或搜索failonerror=
  3. <exec>作为通过 nant.onsuccess resp启动的目标的一部分执行。 nant.onfailure 属性钩子。通过搜索nant.on来检查是否以及在哪里。
  4. 要说更多样本NANT脚本或日志文件会有用。