Если один проект не может быть создан, Visual Studio по умолчанию сохраняет все права на создание всех других проектов, которые зависят от этого проекта, и, следовательно, получает глупые ошибки, поскольку эти другие проекты теперь строятся против устаревшей версии двоичный файл.
Как я могу изменить это поведение и заставить его остановиться при ошибке?
Например, предположим, что у меня есть проект библиотеки MyApp.Core и исполняемый проект MyApp. MyApp вызывает метод в MyApp.Core. Предположим, я добавлю новый параметр к этому методу, а затем попытаюсь построить, но я непреднамеренно представил несвязанную ошибку компилятора в MyApp.Core. Когда я создам, Visual Studio будет:
- Попробуйте создать MyApp.Core и сбой из-за ошибки компилятора. MyApp.Core.dll на диске остается неизменным, потому что сборка не удалась.
- Продолжайте создавать MyApp для этой более старой версии MyApp.Core.dll и сообщать об ошибках компилятора, потому что он пропускает больше параметров, чем ожидает метод старой DLL.
- Сообщить о второй партии ошибок в верхней части окна "Ошибки", что затрудняет поиск фактической проблемы.
Make эта проблема была решена с 1977 года: когда она понимает, что она не может построить, она перестает строить. Каждая другая система сборки и IDE, которые я использовал, также достаточно умны, чтобы остановить потерянное дело. Но Visual Studio не совсем догнала технологическую сложность 1977 года.
В книге " Visual Studio Hacks в ее разделе о макросах есть обход: вы можете написать макрос, который запускается, когда проект выполненное здание; если статус сборки проекта был" неудачным ", макрос может выдать команду" Отменить сборку". Я регулярно устанавливаю этот хак на каждом компьютере, который я использую, который имеет Visual Studio. Однако дома я использую Visual С# Express, который не поддерживает макросы.
Есть ли способ получить Visual Studio 2010 (включая выпуски Express), чтобы остановить создание сбоя сборки?