3

我有一个类似的问题,如Automatically stop Visual C++ 2008 build at first compile error中给出的,但专门用于从命令行使用命令行构建,例如devenv.exe someproject.sln /build Release /project flubber. 我希望构建在第一个错误时停止。宏解决方案也可以在命令行中工作,还是只能在 IDE 中工作?我的猜测是它只能在 IDE 中工作。

如果是这种情况,那么有没有办法干净地做到这一点,这样我构建的项目继续构建与devenv.exe命令行界面所做的相同(即使它意味着使用MSBuild)?

我扫描的其他页面,但这似乎没有回答问题:

  1. 如何在出现错误时自动停止 Visual Studio 构建
  2. 自定义您的项目构建过程
  3. Visual Studio - 在第一次编译错误时停止多项目构建
4

1 回答 1

2

链接的宏解决方案肯定只会在完整的 IDE 打开时起作用,因为它依赖于检查输出窗口。此外,使用 devenv.exe 从命令行构建只会在内部使用 MSBuild,因此基本上您需要一个解决方案,告诉 MSBuild 在第一次失败时停止。不幸的是,从解决方案文件构建时,没有简单的方法可以做到这一点。MSBuild有一个StopOnFirstFailure属性,但对于解决方案中的多个项目,它不能按预期工作正常工作。

你最好的选择是这里提到的这个黑客。基本上,您需要将 *.sln 转换为 *.proj 并将 RunEachTargetSeparately 设置为 false。唯一不确定的是,这可能不适用于 Visual C++ 2008,因为它仍然在内部使用 VCBuild,而不是像 Visual Studio 2010 那样使用 100% MSBuild。

于 2012-01-24T06:40:01.853 回答