В чем разница между Build Solution, Rebuild Solution и Clean Solution в Visual Studio?
Когда подходящее время использовать каждый из них?
В чем разница между Build Solution, Rebuild Solution и Clean Solution в Visual Studio?
Когда подходящее время использовать каждый из них?
Ответы:
(Ссылки на ключи командной строки devenv.exe , но они делают то же, что и пункты меню.)
.gitignore
файл. Но согласно ответу, Clean не всегда делает особенно тщательную работу в моем опыте.
Построение решения: Компилирует файлы кода (DLL и EXE), которые изменяются.
Перестроить: Удаляет все скомпилированные файлы и компилирует их снова, независимо от того, изменился код или нет.
Чистое решение: Удаляет все скомпилированные файлы (DLL и EXE-файл).
Вы можете посмотреть это видео на YouTube ( Visual Studio Build vs. Rebuild vs. Clean (вопросы интервью с C # с ответами) ), где я продемонстрировал различия, а ниже представлены визуальные представления, которые помогут вам проанализировать то же самое более подробно.
Разница между Rebuild и (Clean + Build), потому что, кажется, есть некоторая путаница и в этом:
Разница в том, как последовательность сборки и очистки происходит для каждого проекта. Допустим, у вашего решения есть два проекта, «proj1» и «proj2». Если вы сделаете пересборку, она возьмет «proj1», очистит (удалит) скомпилированные файлы для «proj1» и соберет его. После этого потребуется второй проект «proj2», очистите скомпилированные файлы для «proj2» и скомпилируйте «proj2».
Но если вы выполните «очистку» и сборку », он сначала удалит все скомпилированные файлы для« proj1 »и« proj2 », а затем сначала соберет« proj1 », а затем« proj2 ».
Взяты из этой ссылки :
Сборка означает компиляцию и компоновку только исходных файлов, которые изменились с момента последней сборки, в то время как сборка означает компиляцию и компоновку всех исходных файлов независимо от того, изменились они или нет. Сборка - это нормальное занятие, которое выполняется быстрее. Иногда версии целевых компонентов проекта могут быть не синхронизированы, и для успешной сборки требуется перестройка. На практике вам никогда не нужно чистить.
Построить решение - Сборка любых сборок, которые изменили файлы. Если в сборке нет изменений, она не будет перестроена. Также не будут удалены какие-либо промежуточные файлы.
Используется чаще всего.
Rebuild Solution - перестраивает все сборки независимо от изменений, но оставляет промежуточные файлы.
Используется, когда вы замечаете, что Visual Studio не включил ваши изменения в последнюю сборку. Иногда Visual Studio делает ошибки.
Чистое решение - удалить все промежуточные файлы.
Используется, когда ничего не помогает, и вам нужно все почистить и начать все заново.
Я просто думаю о Rebuild как о выполнении сначала Clean, а затем Build. Возможно, я ошибаюсь ... комментарии?
file reference
вместо того, project reference
чтобы в порядке сборки проекта не распознавалось, что он должен был создать один проект раньше другого, а сборка не существовала там, где она должна была быть во время строить?
Построить решение - Сборка любых сборок, которые изменили файлы. Если в сборке нет изменений, она не будет перестроена. Также не будут удалены какие-либо промежуточные файлы.
Rebuild Solution очистит, а затем создаст решение с нуля, игнорируя все, что было сделано ранее.
Clean Solution удалит все скомпилированные файлы (т.е. EXE и DLL) из каталога bin / obj.
Решение Build будет строить любые проекты в решении, которые изменились. Rebuild собирает все проекты, независимо от того, что, чистое решение удаляет все временные файлы, обеспечивая завершение следующей сборки.
Решение для сборки - решение для сборки создаст ваше приложение с учетом количества проектов, в которых есть какие-либо изменения файла. И он не очищает существующие двоичные файлы и просто заменяет обновленные сборки в папке bin или obj.
Решение Rebuild - решение Rebuild создаст все ваше приложение с созданием всех проектов, доступных в вашем решении с их очисткой. Перед сборкой он очищает все двоичные файлы из папки bin и obj.
Чистое решение - Чистое решение просто очищает все двоичные файлы из папки bin и obj.
Построить решение
Это будет выполнять добавочную сборку. Другими словами, он будет создавать только файлы кода, которые изменились. Если они не изменились, эти файлы не будут затронуты.
Восстановить решение
Это удалит все скомпилированные в данный момент файлы (т.е. exe и DLL) и создаст все с нуля, независимо от того, есть ли изменение кода в файле или нет.
Меню чистого решения
Это меню удалит все скомпилированные файлы (т.е. EXE и DLL) из каталога bin / obj.
Перестроить = очистить + построить
Я думаю, что одна важная вещь - это то, что сборка и очистка - это задачи, которые выполняются на основе знаний Visual Studio о вашем проекте / решении. Я часто жаловался на то, что Clean не работает или оставляет оставшиеся файлы или не заслуживает доверия, хотя на самом деле причины, по которым вы говорите, что они не заслуживают доверия, на самом деле делают его более надежным.
Clean удаляет только (чистые) файлы и / или каталоги, которые фактически были созданы Visual Studio или самим компилятором. Если вы копируете свои собственные файлы или структуры файлов / папок, созданные из внешнего инструмента или источника, то Visual Studio не «знает, что они существуют» и, следовательно, не должен их трогать.
Можете ли вы представить, выполняла ли операция Clean в основном «del *. *»? Это может быть катастрофическим.
Build выполняет компиляцию измененных или необходимых проектов.
Перестройка выполняет компиляцию независимо от изменений или того, что необходимо.
Clean удаляет файлы / папки, которые он создал в прошлом, но изначально оставляет все, к чему он не имеет никакого отношения.
Я надеюсь, что это немного проработает и поможет.
У меня есть аа решения пустого BuildRebuildClean
и три библиотеки классов Models
, Repository
, Notification
.
Я использую Models
и Repository
в Notification
библиотеке классов.
Затем:
Models
проекте библиотеки, то создайте решение. На приведенном ниже снимке экрана см. Временную метку DLL, обновлен EXE-файл Models
и Notification
библиотека.BuildRebuildClean
. Что он делает, так это удаляет все сборки, EXE-файлы и файлы для повторной компиляции.Все, что я знаю, это то, что Clean не делает то, что обычно делал «make clean» - если я очищаю решение, я ожидаю, что оно удалит obj и bin файлы / папки, так что оно будет собираться так, как если бы это была свежая проверка исходного кода. По своему опыту, хотя я часто нахожу случаи, когда чистка и сборка или перестройка по-прежнему приводят к странным ошибкам в исходном коде, который, как известно, компилируется, а для этого требуется ручное удаление папок bin / obj, тогда он будет собираться .
Построить решение строит только те проекты, которые изменились в решении, и не влияет на сборки, которые не изменились,
ReBuild сначала очищает все сборки из решения, а затем собирает все решение независимо от внесенных изменений.
Чисто, просто очищает раствор.
Это касается только опции «Построить решение».
Я был полностью сыт по горло неспособностью Visual Studio действительно чистых решений и написал этот маленький инструмент , который сделает это для вас.
Сначала закройте свое решение в VS и перетащите его папку из Windows Explorer в это приложение или на его значок. В зависимости от настроек в нижней части окна, он также может удалить дополнительные материалы, которые помогут, если вы попытаетесь вручную загрузить свое решение в GitHub или поделиться им с кем-то еще:
В двух словах, он поместит все папки «Debug», Intellisense и другие кеши, которые VS может перестроить для вас.