Visual Studio 2008 продолжает перестраивать

Возможный дубликат:
Visual Studio продолжает строить все

Visual Studio 2008 продолжает перестраивать весь проект, как если бы каждый файл реализации был изменен. Это происходит, даже если файлы не были изменены. Нажмите дважды кнопку сборки, и весь проект будет перестроен дважды. Это не происходит на другой коробке. ОС Windows Vista.

Это очень раздражает. Что может вызвать такое поведение?

Это проект C++.

1 ответ

Решение

Несколько идей, чтобы попробовать...

Как сказал @David Paxson в комментариях, с некоторыми языками (например, C#, VB) все проекты будут казаться "построенными", но компилятор пропустит те, которые не нужно создавать гораздо быстрее, даже хотя они все еще перечислены в выводе. Так что может показаться, что он все восстанавливает. Кроме того, в C# Visual Studio иногда запускает проект несколько раз подряд, и иногда он без явной причины решает, что ему нужно "перестроить" проекты, но обычно это занимает всего несколько секунд, если у вас нет сотен проекты.

Перезапустите Visual Studio (или даже полностью перезагрузите компьютер).

Выполните "Перестроить все" всего решения, чтобы очистить все старые кэшированные данные и убедиться, что все выходные файлы обновлены.

Если вы используете управление исходным кодом, то еще лучше проверить все ваши изменения, затем удалить старую папку с исходным кодом (или более безопасно, переименовать ее где-нибудь в стороне, пока вы не узнаете, что она вам не нужна) и принудительно получить весь последний исходный код из системы контроля версий снова. Это означает, что у вас есть абсолютно чистая отправная точка (очистка или перестройка - все, к сожалению, не совсем очищает все). Я делаю это каждые 2-4 недели, чтобы все работало гладко и полностью синхронизировано с исходным кодом.

Если что-то изменяет метки даты любых файлов в вашей сборке, то это может вызвать "необходимость" перестроить все. Убедитесь, что ваши системные часы установлены правильно, что нет никаких меток даты исходных файлов, для которых установлено время "в будущем", и нет запущенных приложений, которые могли бы "дотронуться" до любого из ваших исходных файлов.

Установите этот флажок: Инструменты-> Параметры> Проекты и решения> Построить и запустить: "Создавать только запускаемые проекты и зависимости при запуске". Если этот флажок снят, VS будет пытаться перестраивать все проекты каждый раз, а не только зависимости запускаемого проекта. Если у вас есть большое решение с кучей в основном не связанных проектов, это очень полезная опция для установки.

Если есть проекты, которые вам не нужно создавать каждый раз, используйте Configuration Manager, чтобы отключить сборку этих проектов в текущей сборке (или создать конфигурацию "Debug Fast Build", чтобы вы могли быстро переключаться между полной перестройкой и частичная сборка). Или перемещайте проекты, которые не нужно часто собирать, в отдельное решение "библиотеки" и ссылайтесь на выходные файлы (obj или dll), ссылаясь на них, в решение вашего приложения, поэтому библиотеки нужно перестраивать, только если вы редактируете их код.

Наконец, убедитесь, что вы делаете "Build", а не "Rebuild":-)

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