Разница между решением сборки, перестройкой решения и чистым решением в Visual Studio?

В чем разница между Build Solution, Rebuild Solution и Clean Solution в Visual Studio?

Когда подходящее время для использования каждого из них?

+815
источник поделиться
10 ответов
  • Build solution будет выполнять инкрементную сборку: если она не думает, что ей нужно перестроить проект, это не произойдет. Он может также использовать частично построенные биты проекта, если они не изменились (я не знаю, насколько это требуется)
  • Rebuild solution очистит и затем построит решение с нуля, игнорируя все, что было сделано раньше.
  • Чистое решение удалит артефакты сборки из предыдущей сборки. Если в целевых каталогах сборки (bin и obj) есть другие файлы, они не могут быть удалены, но фактические артефакты сборки. Я видел, что поведение для этого варьируется - иногда удаляется довольно тщательно, а иногда нет - но я дам VS преимущество сомнений на данный момент:)

(Ссылки на ключи командной строки devenv.exe, но они делают то же самое, что и пункты меню.)

+666
источник

Сборка решения: компилирует файлы кода (DLL и EXE), которые были изменены.

Rebuild: удаляет все скомпилированные файлы и компилирует их снова независимо от того, был ли код изменен или нет.

Чистое решение: Удаляет все скомпилированные файлы (файлы DLL и EXE).

Вы можете увидеть это видео на YouTube (Visual Studio Build vs Rebuild vs. Clean (вопросы интервью с С# с ответами)), где я продемонстрировал различия и ниже - визуальные представления, которые помогут вам проанализировать их более подробно.

Build vs Rebuild

Разница между Rebuild vs. (Clean + Build), потому что, похоже, есть и некоторые путаницы:

Разница заключается в том, как последовательность сборки и очистки выполняется для каждого проекта. Допустим, ваше решение имеет два проекта: "proj1" и "proj2". Если вы выполните пересоздание, он примет "proj1" , очистит (удалит) скомпилированные файлы для "proj1" и построит его. После этого он возьмет второй проект "proj2", очистит скомпилированные файлы для "proj2" и скомпилирует "proj2".

Но если вы сделаете "чистую" и строят ", он сначала удалит все скомпилированные файлы для" proj1 "и" proj2 ", а затем сначала построит" proj1 ", а затем" proj2 ".

Rebuild Vs Clean

+299
источник

Взято из эта ссылка:

Сборка означает компиляцию и ссылку только на исходные файлы, которые изменились начиная с последней сборки, в то время как Rebuild означает компиляцию и связывание всех источников файлы независимо от того, изменено или нет. Построение нормальное что делать и быстрее. Иногда версии целевой задачи проекта компоненты могут выйти из синхронизации и перестройка необходима, чтобы сделать сборку успешный. На практике вы никогда не необходимо очистить.

+129
источник

Build Solution. Создает все сборки, которые изменили файлы. Если сборка не имеет никаких изменений, она не будет перестроена. Также не будет удалять промежуточные файлы.

Используется чаще всего.

Rebuild Solution - восстанавливает все сборки независимо от изменений, но оставляет промежуточные файлы.

Используется, когда вы замечаете, что Visual Studio не включила ваши изменения в последнюю сборку. Иногда Visual Studio делает ошибки.

Очистить решение - удалить все промежуточные файлы и перестроить все сборки независимо от изменений

Используется, когда все остальное терпит неудачу, и вам нужно очистить все и начать новый.

+26
источник

Я просто думаю о Rebuild как о выполнении Clean сначала, а затем Build. Возможно, я ошибаюсь... комментарии?

+13
источник

Build Solution. Создает все сборки, которые изменили файлы. Если сборка не имеет каких-либо изменений, она не будет перестроена. Также не будет удалять промежуточные файлы.

Rebuild solution очистит и затем построит решение с нуля, игнорируя все, что было сделано до

Clean Solution удалит все скомпилированные файлы (например, EXE и DLL) из каталога bin/obj.

+12
источник

Build Solution. Встроенное решение создаст ваше приложение с созданием количества проектов, которые имеют любое изменение файла. И он не очищает существующие бинарные файлы и просто заменяет обновленные сборки в папке bin или obj.

Rebuild Solution. Решение Rebuild построит ваше приложение, создав все проекты, доступные в вашем решении, с их очисткой. Перед его созданием удаляются все двоичные файлы из папки bin и obj.

Чистое решение. Чистое решение просто очищает все двоичные файлы из папки bin и obj.

+6
источник

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

+5
источник

Решение Build только строит те проекты, которые были изменены в решении, и не влияет на сборки, которые не изменились,

ReBuild сначала очищает, все сборки из решения, а затем строит все решение независимо от выполненных изменений.

Очистите, просто очистите решение.

+1
источник

Создать решение

Это будет выполнять инкрементную сборку. Другими словами, он будет только создавать файлы кода, которые изменились. Если они не изменились, эти файлы не будут затронуты.

Реконструкция

Это приведет к удалению всех файлов, скомпилированных в настоящее время (например, exe и DLL), и будет создавать все с нуля, независимо от того, происходит ли изменение кода в файле или нет.

меню "Чистое решение"

В этом меню будут удалены все скомпилированные файлы (например, EXE и DLL) из каталога bin/obj.

Rebuild = Clean + Build

+1
источник

Посмотрите другие вопросы по метке или Задайте вопрос