Visual Studio (2008) вариант «Чистое решение»

Ответы:

109

Он удаляет все скомпилированные и временные файлы, связанные с решением. Это гарантирует, что следующая сборка будет полной, а не перекомпиляцией только измененных файлов.

Дэвид Арно
источник
3
Тогда в чем разница между «Построить» и «Перестроить все»?
Чад
2
Представьте себе решение с 3 проектами. Сборка компилирует только те проекты, которые изменились с момента последней сборки. Перестраивает, все компилирует.
BigJump
18
По сути, Rebuild Solution - это то же самое, что и запуск Clean Solution, а затем Build Solution?
Джои Грин
5
Действительно ли Rebuild Solution выполняет очистку перед сборкой или просто создает все, как если бы сначала была проведена очистка?
Гомер
2
@JoeyGreen Нет. Если вы решите очистить и построить, оно сначала очистит все проекты, а затем построит все проекты. Если вы перестраиваете, он берет один проект за раз, очищает его и строит. Однажды я столкнулся со странной проблемой при использовании Rebuild вместо Clean & Build, потому что некоторые зависимости проекта ...
relaxxx
61

Он удаляет весь объектный код, созданный во время предыдущей компиляции / сборки. Он удаляет все типы файлов ниже: -

* .obj - объектный код

* .pdb - файл отладочной базы данных программы

* .bsc - исходная база данных браузера

* .ilk - файл инкрементального компоновщика

* .sbr - промежуточный файл исходного браузера

* .idb - пересобрать файл зависимостей

* .lib - файл библиотеки

* .exe - исполняемый файл

JFYI - даже команда Rebuild All сделает все это, а затем продолжит сборку полного набора исходных файлов.

-ОБЪЯВЛЕНИЕ

Золотая середина
источник
11

Я хотел, чтобы это был комментарий, но, видимо, нужно 50 повторений.

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

Не рассматривал, что такое перестройка кода, просто общее наблюдение на случай, если у кого-то такая же проблема.

Чарльз
источник
2
Я согласен с этим утверждением - видел такое поведение много раз, когда требуется очистка перед восстановлением
Swordblaster
5

Это старый пост, но я подумал, что об этом стоит упомянуть. При кодировании для Silverlight я обычно открываю Blend и VS2010 одновременно. Из-за этого иногда VS2010 выходит из себя, и IntelliSense не может найти, где что-то или что-то в этом роде, что приводит к ложному выделению большого количества ошибок.

Очистка раствора исправляет это.

лордчето
источник
4

Удаляет файлы, созданные в процессе компиляции. Фактически вызывает полную перекомпиляцию / сборку в следующий раз.

Брайан Кноблаух
источник
2

осторожно при чистке раствора; когда вы очищаете решение и ссылаетесь на библиотеку (скажем, nhibernate) в своем проекте, и если эта библиотека имеет зависимость (например, iesi.collections), вы увидите, что iesi.collections будет удален, даже если вы перестроили решение, и вам нужно снова поместить эту dll в свою папку. или вы также можете сослаться на iesi.collections и выбрать опцию copy-local: yes в его свойствах

Эрсанбилик
источник
5
Это не должно быть проблемой, если вы переместите все свои библиотеки в определенную папку,
отличную
конечно, это не так, но обычно он находится в папке bin (вы можете попробовать получить fluentnhibernate через nuget, а iesi.collections там нет)
ersanbilik
0

К вашему сведению, ни Clean, ни Rebuild не удаляют файлы, не являющиеся файлами сборки, например, файлы, скопированные во время команды предварительной сборки. Я был сбит с толку!

AnneTheAgile
источник