Jaka jest różnica między Build Build, Rebuild Solution i Clean Solution w Visual Studio?
Kiedy jest odpowiedni czas na użycie każdego z nich?
Jaka jest różnica między Build Build, Rebuild Solution i Clean Solution w Visual Studio?
Kiedy jest odpowiedni czas na użycie każdego z nich?
Odpowiedzi:
(Łącza prowadzą do przełączników wiersza polecenia devenv.exe , ale działają tak samo jak elementy menu).
.gitignore
plik. Ale zgodnie z odpowiedzią, Clean nie zawsze wykonuje szczególnie dokładną pracę z mojego doświadczenia.
Kompilacja rozwiązania: Kompiluje pliki kodu (DLL i EXE), które są zmieniane.
Przebuduj: usuwa wszystkie skompilowane pliki i kompiluje je ponownie, niezależnie od tego, czy kod się zmienił, czy nie.
Czyste rozwiązanie: usuwa wszystkie skompilowane pliki (pliki DLL i EXE).
Możesz obejrzeć ten film na YouTube ( Visual Studio Build vs. Rebuild vs. Clean (pytania do wywiadu w C # z odpowiedziami) ), w którym pokazałem różnice, a poniżej znajdują się reprezentacje wizualne, które pomogą ci przeanalizować to samo bardziej szczegółowo.
Różnica między Rebuild vs. (Clean + Build), ponieważ wydaje się, że istnieje pewne zamieszanie wokół tego:
Różnica polega na sposobie budowania i czyszczenia sekwencji dla każdego projektu. Powiedzmy, że twoje rozwiązanie ma dwa projekty: „proj1” i „proj2”. Jeśli wykonasz przebudowę, zajmie „proj1”, wyczyść (usuń) skompilowane pliki dla „proj1” i skompiluj go. Następnie zajmie się drugim projektem „proj2”, wyczyści skompilowane pliki dla „proj2” i skompiluje „proj2”.
Ale jeśli wykonasz „czyszczenie” i kompilację, najpierw usunie wszystkie skompilowane pliki dla „proj1” i „proj2”, a następnie najpierw zbuduje „proj1”, a następnie „proj2”.
Zaczerpnięte z tego linku :
Kompilacja oznacza kompilację i dowiązanie tylko plików źródłowych, które zmieniły się od czasu ostatniej kompilacji, natomiast Odbuduj oznacza kompilację i dowiązanie wszystkich plików źródłowych bez względu na to, czy uległy one zmianie. Kompilacja jest normalną rzeczą i jest szybsza. Czasami wersje komponentów docelowych projektu mogą się nie zsynchronizować i konieczna jest przebudowa, aby kompilacja przebiegła pomyślnie. W praktyce nigdy nie trzeba czyścić.
Kompiluj rozwiązanie - buduje wszystkie zestawy, które zmieniły pliki. Jeśli zespół nie ma zmian, nie zostanie odbudowany. Nie usunie również żadnych plików pośrednich.
Najczęściej używane.
Przebuduj rozwiązanie - Odbudowuje wszystkie zestawy niezależnie od zmian, ale pozostawia pliki pośrednie.
Używane, gdy zauważysz, że program Visual Studio nie uwzględnił twoich zmian w najnowszym zestawie. Czasami Visual Studio popełnia błędy.
Wyczyść rozwiązanie - Usuń wszystkie pliki pośrednie.
Używane, gdy wszystko inne zawiedzie i musisz wszystko wyczyścić i zacząć od nowa.
Po prostu myślę o Przebuduj jako o wykonywaniu najpierw Czystości, a następnie Kompilacji. Może się mylę ... komentarze?
file reference
zamiast, project reference
więc kolejność kompilacji projektu nie rozpoznała, że musi on zbudować określony projekt przed innym, a zespół nie istniał tam, gdzie powinien być podczas budować?
Kompiluj rozwiązanie - buduje wszystkie zestawy, które zmieniły pliki. Jeśli zespół nie ma zmian, nie zostanie odbudowany. Nie usunie również żadnych plików pośrednich.
Przebuduj rozwiązanie wyczyści, a następnie zbuduje rozwiązanie od zera, ignorując wszystko, co zostało zrobione wcześniej
Clean Solution usunie wszystkie skompilowane pliki (tj. Pliki EXE i DLL) z katalogu bin / obj.
Kompilacja rozwiązania zbuduje wszelkie projekty w rozwiązaniu, które uległy zmianie. Rebuild buduje wszystkie projekty bez względu na wszystko, czyste rozwiązanie usuwa wszystkie pliki tymczasowe, zapewniając, że następna kompilacja jest zakończona.
Kompiluj kompilację - Kompiluj kompilację zbuduje twoją aplikację wraz z budowaniem liczby projektów, które mają dowolną zmianę pliku. I nie usuwa żadnych istniejących plików binarnych, a jedynie zastępuje zaktualizowane zestawy w folderze bin lub obj.
Przebuduj rozwiązanie - Przebuduj rozwiązanie zbuduje całą aplikację z budowaniem wszystkich projektów dostępnych w rozwiązaniu z ich czyszczeniem. Przed zbudowaniem usuwa wszystkie pliki binarne z folderu bin i obj.
Czyste rozwiązanie - Czyste rozwiązanie to po prostu usuwa wszystkie pliki binarne z folderu bin i obj.
Zbuduj rozwiązanie
Spowoduje to wykonanie przyrostowej kompilacji. Innymi słowy, będzie budować tylko pliki kodu, które uległy zmianie. Jeśli się nie zmieniły, pliki te nie zostaną dotknięte.
Przebuduj rozwiązanie
Spowoduje to usunięcie wszystkich aktualnie skompilowanych plików (tj. Exe i bibliotek DLL) i zbuduje wszystko od zera, niezależnie od tego, czy w pliku jest zmiana kodu, czy nie.
Menu czystego rozwiązania
To menu usuwa wszystkie skompilowane pliki (tj. Pliki EXE i DLL) z katalogu bin / obj.
Przebuduj = Clean + Build
Jedną z głównych rzeczy, które, jak sądzę, ludzie pomijają, jest to, że zarówno Build, jak i Clean są zadaniami wykonywanymi w oparciu o wiedzę Visual Studio na temat Twojego projektu / rozwiązania. Widzę wiele skarg, że Clean nie działa lub pozostawia resztki plików lub nie jest godny zaufania, podczas gdy w rzeczywistości powody, dla których mówisz, że nie są godne zaufania, w rzeczywistości sprawiają, że jest bardziej godny zaufania.
Wyczyść usunie tylko (wyczyści) pliki i / lub katalogi utworzone przez Visual Studio lub sam kompilator. Jeśli skopiujesz własne pliki lub struktury plików / folderów zostaną utworzone z zewnętrznego narzędzia lub źródła, program Visual Studio nie będzie wiedział, że istnieją i dlatego nie powinien ich dotykać.
Czy możesz sobie wyobrazić, czy operacja czyszczenia zasadniczo wykonała „del *. *”? To może być katastrofalne.
Kompilacja wykonuje kompilację zmienionych lub niezbędnych projektów.
Przebuduj wykonuje kompilację bez względu na zmianę lub to, co jest konieczne.
Clean usuwa pliki / foldery, które utworzył w przeszłości, ale pozostawia wszystko, z czym początkowo nie miało nic wspólnego.
Mam nadzieję, że to trochę rozwinie i pomoże.
Mam aa rozwiązanie pusty BuildRebuildClean
i trzy klasy biblioteki Models
, Repository
, Notification
.
Używam Models
oraz Repository
w Notification
bibliotece klasy.
Następnie:
Models
projekcie biblioteki, wtedy BUDUJ rozwiązanie. Na poniższym zrzucie ekranu zapoznaj się ze znacznikiem czasu biblioteki DLL, zaktualizowano plik EXE Models
i Notification
bibliotekę.BuildRebuildClean
. To, co robi, to usuwa wszystkie zestawy, pliki EXE i pliki referencyjne w celu ponownej kompilacji.Wiem tylko, że Clean nie robi tego, co zwykło robić „clean” - jeśli wyczyściłem rozwiązanie, oczekiwałbym, że usunie obiekty i pliki bin / foldery, które buduje tak, jakby był świeżą kasą źródła. Z mojego doświadczenia wynika jednak, że często znajduję czasy, w których czyszczenie i kompilacja lub przebudowa nadal powodują dziwne błędy w źródle, o których wiadomo, że się kompilują, a wymagane jest ręczne usunięcie folderów bin / obj, a następnie kompilacja.
Kompiluj rozwiązanie buduje tylko te projekty, które zmieniły się w rozwiązaniu, i nie wpływa na zespoły, które się nie zmieniły,
ReBuild najpierw czyści wszystkie zespoły z rozwiązania, a następnie buduje całe rozwiązanie niezależnie od dokonanych zmian.
Wyczyść, po prostu czyści rozwiązanie.
Dotyczy to tylko opcji „Kompiluj rozwiązanie”.
Całkowicie mam dość niezdolności Visual Studio do naprawdę czystych rozwiązań i napisałem to małe narzędzie , które zrobi to za Ciebie.
Najpierw zamknij swoje rozwiązanie w VS i przeciągnij jego folder z Eksploratora Windows do tej aplikacji lub do jego ikony. W zależności od ustawienia w dolnej części okna może również usunąć dodatkowe elementy, które pomogą, jeśli spróbujesz ręcznie przesłać swoje rozwiązanie do GitHub lub udostępnić je komuś innemu:
Krótko mówiąc, umieści wszystkie foldery „Debugowanie”, Intellisense i inne pamięci podręczne, które VS może odbudować w Koszu.