Opcja „Czyste rozwiązanie” programu Visual Studio (2008)

Odpowiedzi:

109

Usuwa wszystkie skompilowane i tymczasowe pliki powiązane z rozwiązaniem. Zapewnia to, że następna kompilacja będzie pełna, a nie tylko rekompilowane tylko zmienione pliki.

David Arno
źródło
3
Jaka jest zatem różnica między opcjami „Build” i „Rebuild All?”
Czad
2
Wyobraź sobie rozwiązanie obejmujące 3 projekty. Build kompiluje tylko projekty, które uległy zmianie od czasu ostatniej kompilacji. Przebuduj, kompiluje wszystko.
BigJump
18
Czy Odbuduj rozwiązanie jest zasadniczo tym samym, co uruchomienie czystego rozwiązania, a następnie zbudowanie rozwiązania?
Joey Green
5
Czy narzędzie Rebuild Solution faktycznie wykonuje czyszczenie przed budową, czy po prostu buduje wszystko tak, jakby czyszczenie zostało wykonane najpierw?
Homer
2
@JoeyGreen Nie. Jeśli korzystasz z rozwiązania Clean and Build, najpierw czyści wszystkie projekty, a następnie buduje wszystkie projekty. Jeśli przebudujesz, zajmie to jeden projekt naraz, wyczyści go i zbuduje. Kiedyś napotkałem dziwny problem przy używaniu Rebuild zamiast Clean & Build, ponieważ niektóre zależności projektu ...
relaxxx
61

Usuwa cały kod obiektowy wygenerowany podczas poprzedniej kompilacji / kompilacji. Usuwa wszystkie poniższe rodzaje plików: -

* .obj - kod wynikowy

* .pdb - plik bazy danych debugowania programu

* .bsc - baza danych przeglądarki źródłowej

* .ilk - przyrostowy plik konsolidatora

* .sbr - plik pośredni przeglądarki źródłowej

* .idb - odbuduj plik zależności

* .lib - plik biblioteki

* .exe - plik wykonywalny

JFYI - nawet polecenie Rebuild All zrobi to wszystko, a następnie przejdzie do zbudowania pełnego zestawu plików źródłowych.

-OGŁOSZENIE

złoty środek
źródło
11

Chciałem, żeby to był komentarz, ale najwyraźniej potrzebuję 50 powtórzeń.

Aby ostrzec innych, uważam, że rozwiązanie do odbudowy nie usuwa samodzielnie. Często nie muszę go czyścić, a potem budować / odbudowywać, aby działał - myślę, że przebudowa tego samego wymusza pełną kompilację bez czyszczenia i zastępuje wszystko, ale nie pozbywa się dodatków.

Nie sprawdziłem, co przebudowa koduje mądrze, tylko ogólną obserwację na wypadek, gdyby ktoś inny miał ten sam problem.

Charles
źródło
2
Zgadzam się z tym stwierdzeniem - widziałem to zachowanie wiele razy, gdy wymagane jest wyczyszczenie przed przebudową
Swordblaster
5

To jest stary post, ale pomyślałem, że warto o tym wspomnieć. Podczas kodowania dla Silverlight zwykle mam otwarte Blend i VS2010 w tym samym czasie. Z tego powodu czasami VS2010 wariuje, a IntelliSense nie może znaleźć, gdzie są rzeczy lub coś, co powoduje fałszywe wyróżnienie wielu błędów.

Oczyszczenie roztworu rozwiązuje ten problem.

lordcheeto
źródło
4

Usuwa pliki utworzone podczas procesu kompilacji. Skutecznie wymusza pełną rekompilację / kompilację następnym razem.

Brian Knoblauch
źródło
2

ostrożnie, gdy czyścisz roztwór; kiedy wyczyścisz rozwiązanie i jeśli odniesiesz się do biblioteki (powiedzmy nhibernate) w swoim projekcie i jeśli ta biblioteka ma zależność (powiedzmy iesi.collections), zobaczysz, że iesi.collections zostanie usunięta, nawet jeśli odbudujesz rozwiązanie i musisz ponownie umieścić tę bibliotekę dll w swoim folderze. lub możesz również odwołać się do iesi.collections i wybrać opcję copy-local: yes z jego właściwości

ersanbilik
źródło
5
Nie powinno to stanowić problemu, jeśli przeniesiesz wszystkie swoje biblioteki do określonego folderu innego niż „Bin” i / lub użyjesz NuGet
bbqchickenrobot
pewnie, że nie, ale zwykle znajduje się w folderze bin (możesz spróbować uzyskać fluentnhibernate przez nuget i nie ma iesi.collections)
ersanbilik
0

FYI, ani Wyczyść, ani Odbuduj nie usunie plików innych niż kompilowane, np. Plików skopiowanych podczas polecenia przed kompilacją. Byłem zdezorientowany!

AnneTheAgile
źródło