Яка різниця між 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 vs. (Clean + Build), оскільки навколо цього також існує певна плутанина:
Різниця полягає в тому, як відбувається послідовність складання та очищення для кожного проекту. Скажімо, ваше рішення має два проекти: "proj1" і "proj2". Якщо ви перестраюєтеся, це знадобиться "proj1", очистіть (видаліть) скомпільовані файли для "proj1" і складіть його. Після цього візьметься другий проект "proj2", очистіть компільовані файли для "proj2" і компілюйте "proj2".
Але якщо ви зробите «чистий» і побудуєте, він спершу видалить усі складені файли для «proj1» та «proj2», а потім створить «proj1» спочатку за «proj2».
З цього посилання :
Збірка означає компілювати та зв’язувати лише вихідні файли, які були змінені з моменту останньої збірки, тоді як Перебудувати означає компілювати та зв’язувати всі вихідні файли незалежно від того, змінилися вони чи ні. Збірка - це нормальна річ і швидша. Іноді версії цільових компонентів проекту можуть вийти із синхронізації та відновитись, щоб зробити збірку вдалою. На практиці ніколи не потрібно чистити.
Build Solution - будує будь-які збірки, які змінили файли. Якщо збірка не має змін, вона не буде відтворена. Також не буде видалено жодні проміжні файли.
Використовується найчастіше.
Рішення відновлення - відновлює всі збори незалежно від змін, але залишає проміжні файли.
Використовується, коли ви помічаєте, що Visual Studio не включив ваші зміни в останню збірку. Іноді Visual Studio робить помилки.
Чисте рішення - видаліть усі проміжні файли.
Використовується, коли все інше виходить з ладу і вам потрібно все очистити і почати свіжим.
Я просто думаю про Перебудову як виконання "Чистого", а за ним - "Збірка". Можливо, я помиляюся ... коментарі?
file reference
замість того, project reference
щоб замовлення на створення проекту не визнало, що він повинен будувати певний проект перед іншим, і збірка не існувала там, де вона мала бути під час будувати?
Build Solution - будує будь-які збірки, які змінили файли. Якщо збірка не має змін, вона не буде відтворена. Також не буде видалено жодні проміжні файли.
Відновлення рішення очистить, а потім створить рішення з нуля, ігноруючи все, що було зроблено раніше
Clean Solution видалить усі компільовані файли (тобто EXE та DLL) з каталогу bin / obj.
Рішення побудови дозволить будувати будь-які проекти, що змінилися. Відновлення будує всі проекти незалежно від того, чисте рішення видаляє всі тимчасові файли, забезпечуючи завершення наступної збірки.
Build Solution - Рішення Build створить вашу програму, будуючи кількість проектів, які мають будь-які зміни файлів. І це не очищає жодних існуючих бінарних файлів і просто замінює оновлені збірки в папці bin або obj.
Рішення відновлення - Рішення відновлення створить всю вашу програму зі створенням усіх проектів, доступних у вашому рішенні, з їх очищенням. Перед створенням він очищає всі бінарні файли з папки bin та obj.
Чисте рішення - Чисте рішення просто очищає всі бінарні файли з папки bin та obj.
Будувати рішення
Це дозволить наростити нарощування. Іншими словами, він буде створювати лише файли коду, які змінилися. Якщо вони не змінили, ці файли не торкаються.
Відновити рішення
Це видалить усі поточно складені файли (тобто EXE та DLL) і створить все з нуля, незалежно від того, чи є у файлі зміна коду чи ні.
Меню чистого рішення
Це меню видалить усі компільовані файли (тобто EXE та DLL) з каталогу bin / obj.
Перебудувати = очистити + побудувати
Я вважаю, що головне, що люди залишають поза межами, це те, що Build and Clean - це завдання, які виконуються на основі знань Visual Studio про ваш проект / рішення. Я бачу багато скарг на те, що Clean не працює або не залишає файли, що залишилися, або не є надійними, коли насправді причини, за якими ви говорите, що не є надійними, насправді роблять це більш надійним.
Clean видаляє (очищає) лише файли та / або каталоги, створені Visual Studio або компілятором. Якщо ви копіюєте власні файли або структури файлів / структур папок, створені із зовнішнього інструменту чи джерела, Visual Studio не "знає, що вони існують", і тому не повинен їх чіпати.
Ви можете собі уявити, якщо операція Clean в основному виконувала "del *. *"? Це може бути катастрофічно.
Build виконує компіляцію за зміненими або необхідними проектами.
Перебудова виконує компіляцію незалежно від зміни або необхідного.
Clean видаляє файли / папки, які він створював у минулому, але спочатку залишає все, до чого він не мав нічого спільного.
Я сподіваюся, що це трохи детальніше і допомагає.
У мене є аа рішення порожнього BuildRebuildClean
і три бібліотеки класів Models
, Repository
, Notification
.
Я використовую Models
і Repository
в Notification
бібліотеці класів.
Тоді:
Models
проекті бібліотеки, то BUILD рішення. У скріншоті нижче, відносяться до мітки часу DLL, EXE оновлюється в Models
і Notification
бібліотека.BuildRebuildClean
. Що він робить - це видалити всі збірки, EXE та передані файли для компіляції заново.Все, що я знаю, є «Чистота» - не робить те, що «очищати» раніше, - якщо я очищую рішення, я б очікував, що він видалить obj і bin файли / папки, щоб вони створювались, як це була нова перевірка джерела. На моєму досвіді, хоча я часто знаходжу випадки, коли Clean and Build або Rebuild все ще створює дивні помилки у джерелі, який, як відомо, збирається, і що потрібно - це ручне видалення папок bin / obj, тоді воно буде створене.
Рішення збирання будує лише ті проекти, які змінилися в рішенні, і не впливають на збірки, які не змінилися,
Спочатку ReBuild очищає всі збори від рішення, а потім будує ціле рішення незалежно від зроблених змін.
Чистий, просто очищає розчин.
Це стосується лише опції "Build Solution".
Мене цілком надокучила нездатність Visual Studio дійсно чистих рішень і написала цей маленький інструмент, який зробить це за вас.
Спершу закрийте своє рішення у VS та перетягніть його папку з Провідника Windows у цю програму чи у її значок. Залежно від налаштування в нижній частині вікна, він також може видалити додаткові матеріали, що допоможе, якщо ви спробуєте вручну завантажити рішення в GitHub або поділитися ним з кимось іншим:
У двох словах, вони розмістять усі папки "Налагодження", Intellisense та інші кеші, які VS може перебудувати у кошик для вас.