使用 Cake 中止构建的正确方法是什么?

What is the proper way of aborting a build using Cake?

使用Error() 方法只会记录错误。但是如果我想中止构建怎么办?我可以抛出异常来中止构建,但它似乎不对。那么有没有正确的中止方法呢?

var releaseNotes = ParseReleaseNotes("./ReleaseNotes.md");

if(releaseNotes.Version.ToString() != nugetVersion)
{
    Error("Release notes are missing an entry for v{0}. Latest release notes are for v{1}", nugetVersion, releaseNotes.Version);
    throw new Exception();
}

好的,所以答案是抛出异常,而不是像这样使用 Error() 方法:

var releaseNotes = ParseReleaseNotes("./ReleaseNotes.md");

if(releaseNotes.Version.ToString() != nugetVersion)
{
    throw new Exception("Release notes are missing an entry for v{0}. Latest release notes are for v{1}", nugetVersion, releaseNotes.Version);        
}

Error方法只是记录错误的一种便捷方法。不过我理解这种困惑。

如果出现无法恢复的错误,您应该抛出一个异常来指示它。然后 Cake 脚本运行程序将记录错误(使用 Error 方法)和 return 退出代码 1 以指示出现问题。