Итак, как гласит название, у меня есть VS2010-решение с ~ 50 проектами в нем прямо сейчас. Если я внес изменения в проект «верхнего уровня», который ничего не ссылается, VS все еще перестраивает все 50 проектов. Я запускаю Visual Studio 2010 Ultimate без каких-либо надстроек. Я использую ILMerge для консолидации всех проектов в один файл.Visual Studio перестраивает немодифицированные проекты
Я проверил это, проверив отметки времени DLL нижнего уровня и убедившись, что они действительно перестроены, хотя их код не был затронут.
Я прочитал все отзывы и комментарии для:
Visual Studio 2008 keeps rebuilding
Visual studio keeps building everything
Strange VS2010 build glitch occurs in my solution
Reasons for C# projects to rebuild in Visual Studio
Но большинство из них просто предлагают предложения по выгрузке проектов для ускорения но ничего конкретного, как t o исправление. Я пытаюсь понять, почему VS считает, что эти зависимые проекты необходимо перестроить, когда они этого не сделают, и исправить.
Я включил «Инструменты»> «Параметры»> «Проекты и решения»> «Сборка и запуск». Создавайте только проекты запуска и зависимости от запуска », но без эффекта.
Кроме того, если я просто перестрою проект «среднего уровня», который имеет только 8 (в) прямых зависимостей, то он все еще строит все 8 проектов, хотя ILMerge не вызывается и ни один из зависимых проектов не был изменен.
Благодарим всех вас за понимание, которое вы можете предоставить.
Добавлено
Чтобы проверить некоторые из предложений, которые я создал новый проект WinForms с нуля. Затем я создал два новых проекта внутри этого решения. Я скопировал весь код и ресурсы (не файл проекта) из моих двух проектов «самого низкого уровня» в два новых проекта (я сделал это, отбросив файлы и папки из Explorer в проект в Visual Studio).
Самый низкий проект, назовем его B, не ссылался ни на один другой проект. Следующий проект, A, ссылка B только. Поэтому, как только я добавлю необходимые ссылки на .NET и внешние сборки для проектов, тогда будет построено решение.
У меня тогда был мой новый проект проекта WinForm A и сделал полную сборку. Таким образом, ссылка цепи:
WinForm -> ->B
Я модифицируется WinFormтолько и сделал стандартную сборку (F6). Как и прежде, Visual Studio перестроила все три проекта.
После некоторого систематического eleminiation исходных файлов в проекте B Я обнаружил, что если я удалил мой Resources.Designer.cs
и Resources.resx
(и закомментирован код, который сделал использование .Properties.Resources
объекта этих ресурсов), то модификацией WinForm больше не будет перестраивать все решение и будет восстанавливать только WinForm.
Добавление Resources.resx
и Resources.Designer.cs
обратно к проекту B (но оставляя ссылочный код комментировал так, что ничего не делает использование ресурсов) будет повторно ввести полное поведение сборки.
Чтобы узнать, были ли повреждены мои файлы ресурсов, я удалил их еще раз, а затем создал новый (через Project Properties -> Resources) и повторно добавил тот же ресурс, что и раньше, который был единственным файлом Excel. С помощью этой установки все еще будет происходить полная перестройка.
Затем я удалил единственный ресурс, но оставил файл ресурсов в проекте B. Даже если ресурсы не добавлены, но файл ресурсов все еще находится в проекте, произойдет полная (ненужная) перестройка.
Похоже, что наличие файла ресурсов, добавленного в проект (.NET 3.5), приведет к тому, что Visual Studio 2010 всегда будет перестраивать этот проект. Является ли это ошибкой или предполагаемым/ожидаемым поведением?
Спасибо всем!
может вы пытаетесь создать его с помощью msbuild напрямую и посмотреть, все ли происходит. –
Я понимаю, что VS вызывает msbuild (и что проект в основном является сценарием msbuild http://stackoverflow.com/questions/1497344/integrating-msbuild-into-visual -студия), поэтому я не уверен, что это изменит любой г. Я подозреваю, что просто закончил бы воссоздать один и тот же скрипт сборки, а затем запустил его из командной строки. Есть ли способ, которым работает msbuild напрямую, будет другим? Или, возможно, каким-то образом узнать, почему msbuild считает, что проекты необходимо перестроить? –
Вы строите или перестраиваете? –