代码之家  ›  专栏  ›  技术社区  ›  Antipod

FailOnError在自定义NAnt任务中不工作

  •  6
  • Antipod  · 技术社区  · 14 年前

    我已创建自定义错误任务:

    [NAnt.Core.Attributes.TaskName("errorTask")]
    public class ErrorTask : NAnt.Core.Task
    {
        public ErrorTask()
        {
            FailOnError = true;
        }
    
        protected override void ExecuteTask()
        {
            Log(NAnt.Core.Level.Error, "Error!");
        }
    }
    

    下面是我在NAnt构建文件中的内容:

    <target name="errorTarget"> 
        <errorTask failonerror="true" />
        <errorTask failonerror="true" />
    </target>
    

    在结果(build.log)中,我有:

    errorTarget:
    [errorTask] Error!
    [errorTask] Error!
    BUILD SUCCEEDED - 2 non-fatal error(s), 0 warning(s)
    Total time: 0 seconds.
    

    所以,我可以看到第二个任务也在运行,但我想取消它,因为第一个调用返回“Error!”。你能帮我修一下吗?

    谢谢您。

    1 回复  |  直到 14 年前
        1
  •  8
  •   Russell McClure    14 年前

    您需要让ExecuteTask函数中出现一个异常。在日志语句之后,添加以下行:

    throw new BuildException("Something terrible has happened!");
    
    推荐文章