2010-12-17 3 views
3

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

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

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

  1. How to Automatically Stop a Visual Studio Build on an Error
  2. Customize Your Project Build Process
  3. Visual Studio - Stopping a Multi-Project build at the first compile error

ответ

2

Макрос решение связано, безусловно, только работать, когда полная IDE открыта, поскольку она полагается на проверку выходного окна. Кроме того, построение из командной строки с помощью devenv.exe будет только внутренне использовать MSBuild, так что в основном вам нужно решение, которое сообщает MSBuild о прекращении первого сбоя. К сожалению, нет простого способа сделать это при построении из файла решения. Для MSBuild существует свойство StopOnFirstFailure, но это не work as expected with multiple projects within a solution.

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

+0

Спасибо Скотту. В конечном итоге я изучу ссылку на «хак», которую вы упомянули. – bgoodr 2012-01-25 21:50:41

 Смежные вопросы

  • Нет связанных вопросов^_^