Visual Studio (2008) Option "Clean Solution"

97

Was macht diese Option? Sie können über das Menü Erstellen darauf zugreifen.

Julius A.
quelle

Antworten:

109

Es löscht alle kompilierten und temporären Dateien, die einer Lösung zugeordnet sind. Es stellt sicher, dass der nächste Build vollständig ist und nicht nur geänderte Dateien neu kompiliert werden.

David Arno
quelle
3
Was ist dann der Unterschied zwischen "Build" und "Rebuild All"?
Tschad
2
Stellen Sie sich eine Lösung mit 3 Projekten vor. Build kompiliert nur die Projekte, die sich seit dem letzten Build geändert haben. Wiederaufbau, kompiliert alles.
BigJump
18
Entspricht Rebuild Solution im Wesentlichen dem Ausführen von Clean Solution und anschließend von Build Solution?
Joey Green
5
Führt Rebuild Solution tatsächlich eine Bereinigung vor dem Erstellen durch oder erstellt es einfach alles so, als ob zuerst eine Bereinigung durchgeführt worden wäre?
Homer
2
@JoeyGreen Nein. Wenn Sie die Lösung bereinigen und erstellen, werden zuerst alle Projekte bereinigt und dann alle Projekte erstellt. Wenn Sie neu erstellen, wird jeweils ein Projekt benötigt, um es zu bereinigen und zu erstellen. Einmal bin ich auf ein seltsames Problem bei der Verwendung von Rebuild anstelle von Clean & Build gestoßen, weil einige Projektabhängigkeiten ...
relaxxx
61

Es löscht den gesamten Objektcode, der während der vorherigen Kompilierung / Erstellung generiert wurde. Es löscht alle unten aufgeführten Arten von Dateien: -

* .obj - Objektcode

* .pdb - Programm-Debug-Datenbankdatei

* .bsc - Quellbrowser-Datenbank

* .ilk - inkrementelle Linkerdatei

* .sbr - Quellbrowser-Zwischendatei

* .idb - Abhängigkeitsdatei neu erstellen

* .lib - Bibliotheksdatei

* .exe - ausführbar

JFYI - Sogar ein Befehl "Alle neu erstellen" erledigt all dies und erstellt dann den vollständigen Satz von Quelldateien.

-ANZEIGE

goldene Mitte
quelle
11

Ich wollte, dass dies ein Kommentar ist, brauche aber anscheinend 50 Wiederholungen.

Um andere zu warnen, finde ich, dass die Wiederherstellungslösung selbst keine Reinigung durchführt. Ich werde es oft nicht brauchen, um es zu bereinigen und danach zu bauen / neu zu erstellen, damit es funktioniert - ich denke, dass das Wiederherstellen selbst eine vollständige Kompilierung ohne Bereinigung erzwingt und alles außer Kraft setzt, aber die Extras nicht beseitigt.

Ich habe nicht untersucht, was die Neuerstellung in Bezug auf Code bewirkt, sondern nur eine allgemeine Beobachtung für den Fall, dass jemand anderes das gleiche Problem hat.

Charles
quelle
2
Ich stimme dieser Aussage zu - habe dieses Verhalten viele Male gesehen, wo eine Reinigung vor einem Wiederaufbau erforderlich ist
Swordblaster
5

Dies ist ein alter Beitrag, aber ich dachte, das wäre erwähnenswert. Beim Codieren für Silverlight sind normalerweise Blend und VS2010 gleichzeitig geöffnet. Aus diesem Grund flippt VS2010 manchmal aus und IntelliSense kann nicht finden, wo sich etwas oder etwas befindet, was dazu führt, dass viele Fehler fälschlicherweise hervorgehoben werden.

Das Reinigen der Lösung behebt dieses Problem.

Lordcheeto
quelle
4

Löscht Dateien, die während des Kompilierungsprozesses erstellt wurden. Erzwingt beim nächsten Mal effektiv eine vollständige Neukompilierung / Erstellung.

Brian Knoblauch
quelle
2

Vorsicht beim Reinigen einer Lösung; Wenn Sie eine Lösung bereinigen und in Ihrem Projekt auf eine Bibliothek (z. B. nhibernate) verweisen und diese Bibliothek eine Abhängigkeit aufweist (z. B. iesi.collections), wird iesi.collections auch dann gelöscht, wenn Sie die neu erstellen Lösung und Sie müssen diese DLL erneut in Ihren Ordner legen. Sie können auch auf iesi.collections verweisen und in den Eigenschaften die Option copy-local: yes auswählen

ersanbilik
quelle
5
Dies sollte kein Problem sein, wenn Sie alle Ihre Bibliotheken in einen anderen Ordner als 'Bin' verschieben und / oder NuGet
bbqchickenrobot
Sicher ist es nicht, aber normalerweise befindet es sich im Ordner bin (Sie können versuchen, über nuget fließend zu werden, und iesi.collections ist nicht da)
ersanbilik
0

Zu Ihrer Information, weder Clean noch Rebuild löschen nicht erstellte Dateien, z. B. Dateien, die während eines Pre-Build-Befehls kopiert wurden. Ich war darüber verwirrt!

AnneTheAgile
quelle