Автоматически останавливать пакетные сборки Visual C++ 2008 при первой ошибке компиляции, используя devenv.exe?

У меня есть такой же вопрос, как и в " Автоматически останавливать сборку Visual C++ 2008 при первой ошибке компиляции, но специально для сборки из командной строки с такими командными строками, как devenv.exe someproject.sln /build Release /project flubber, Я хочу, чтобы сборка остановилась при первой ошибке. Будет ли решение для макросов работать также из командной строки или только из среды IDE? Я думаю, что это работает только из IDE.

Если это так, то есть ли способ сделать это чисто, такой проект, который я строю, продолжает создаваться идентично тому, что devenv.exe интерфейс командной строки будет делать (даже если это означает использование MSBuild)?

Другие страницы я отсканировал, но это, казалось бы, не ответило на вопрос:

  1. Как автоматически остановить сборку Visual Studio при ошибке
  2. Настройте свой процесс сборки проекта
  3. Visual Studio - Остановка сборки Multi-Project при первой ошибке компиляции

1 ответ

Связанное решение для макроса определенно будет работать только тогда, когда открыта полная IDE, поскольку оно полагается на проверку окна вывода. Кроме того, сборка из командной строки с помощью devenv.exe будет просто использовать MSBuild для внутреннего использования, поэтому в основном вам нужно решение, которое сообщает MSBuild об остановке при первом сбое. К сожалению, нет простого способа сделать это при сборке из файла решения. Для MSBuild есть свойство StopOnFirstFailure, но оно не работает должным образом с несколькими проектами в решении.

Ваш лучший выбор - этот хак, упомянутый здесь. В основном вам нужно преобразовать ваш *.sln в *.proj и установить для RunEachTargetSeparately значение false. Единственная неопределенность заключается в том, что это может не совсем работать с Visual C++ 2008, так как он все еще использует VCBuild вместо 100% MSBuild, как в Visual Studio 2010.

Другие вопросы по тегам