Автоматически останавливать пакетные сборки Visual C ++ 2008 при первой ошибке компиляции с использованием devenv.exe? - PullRequest
3 голосов
/ 17 декабря 2010

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

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

Другие страницы, которые я отсканировал, но, похоже, не ответили на вопрос:

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

1 Ответ

2 голосов
/ 24 января 2012

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

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

...