Was ist der Unterschied zwischen Build Solution, Rebuild Solution und Clean Solution in Visual Studio?
Wann ist der richtige Zeitpunkt, um diese zu nutzen?
Was ist der Unterschied zwischen Build Solution, Rebuild Solution und Clean Solution in Visual Studio?
Wann ist der richtige Zeitpunkt, um diese zu nutzen?
Antworten:
(Die Links verweisen auf die Befehlszeilenoptionen von devenv.exe , funktionieren jedoch genauso wie die Menüelemente .)
.gitignore
Datei zu haben . Aber laut Antwort macht Clean meiner Erfahrung nach nicht immer einen besonders gründlichen Job.
Build-Lösung: Kompiliert Code-Dateien (DLL und EXE), die geändert werden.
Neu erstellen: Löscht alle kompilierten Dateien und kompiliert sie erneut, unabhängig davon, ob sich der Code geändert hat oder nicht.
Saubere Lösung: Löscht alle kompilierten Dateien (DLL- und EXE-Datei).
Sie können dieses YouTube-Video ( Visual Studio Build vs. Rebuild vs. Clean (C # -Interview-Fragen mit Antworten) ) sehen, in dem ich die Unterschiede aufgezeigt habe. Im Folgenden sind visuelle Darstellungen aufgeführt, mit denen Sie diese detaillierter analysieren können.
Der Unterschied zwischen Rebuild und (Clean + Build), da auch diesbezüglich einige Verwirrung zu bestehen scheint:
Der Unterschied besteht in der Art und Weise, wie die Build- und Clean-Sequenz für jedes Projekt ausgeführt wird. Angenommen, Ihre Lösung besteht aus zwei Projekten: "proj1" und "proj2". Wenn Sie eine Neuerstellung durchführen, wird "proj1" benötigt, bereinigen (löschen) Sie die kompilierten Dateien für "proj1" und erstellen Sie sie. Danach wird das zweite Projekt "proj2" benötigt, kompilierte Dateien für "proj2" bereinigt und "proj2" kompiliert.
Wenn Sie jedoch "bereinigen" und erstellen, werden zuerst alle kompilierten Dateien für "proj1" und "proj2" gelöscht und anschließend "proj1" und anschließend "proj2" erstellt.
Aus diesem Link entnommen :
Build bedeutet, nur die Quelldateien zu kompilieren und zu verknüpfen, die sich seit dem letzten Build geändert haben, während Rebuild bedeutet, dass alle Quelldateien kompiliert und verknüpft werden, unabhängig davon, ob sie geändert wurden oder nicht. Build ist normal und schneller. Manchmal sind die Versionen der Projektzielkomponenten nicht mehr synchron und eine Neuerstellung ist erforderlich, um den Build erfolgreich zu gestalten. In der Praxis müssen Sie nie reinigen.
Build-Lösung - Erstellt alle Assemblys, die Dateien geändert haben. Wenn eine Baugruppe keine Änderungen aufweist, wird sie nicht neu erstellt. Löscht auch keine Zwischendateien.
Am häufigsten verwendet.
Neuerstellungslösung - Erstellt alle Assemblys unabhängig von Änderungen neu, hinterlässt jedoch Zwischendateien.
Wird verwendet, wenn Sie feststellen, dass Visual Studio Ihre Änderungen nicht in die neueste Assembly übernommen hat. Manchmal macht Visual Studio Fehler.
Saubere Lösung - Löschen Sie alle Zwischendateien.
Wird verwendet, wenn alles andere fehlschlägt und Sie alles aufräumen und neu beginnen müssen.
Ich stelle mir Rebuild nur so vor, als würde zuerst das Clean ausgeführt, gefolgt vom Build. Vielleicht irre ich mich ... Kommentare?
file reference
anstelle eines project reference
Projekts verursacht, sodass die Projekterstellungsreihenfolge nicht erkannte, dass ein bestimmtes Projekt vor einem anderen erstellt werden musste, und die Assembly nicht dort vorhanden war, wo sie während des Vorgangs vorhanden sein sollte bauen?
Build-Lösung - Erstellt alle Assemblys, die Dateien geändert haben. Wenn eine Baugruppe keine Änderungen aufweist, wird sie nicht neu erstellt. Löscht auch keine Zwischendateien.
Die Neuerstellungslösung wird bereinigt und dann von Grund auf neu erstellt, wobei alles ignoriert wird, was zuvor getan wurde
Clean Solution löscht alle kompilierten Dateien (dh EXE- und DLL-Dateien) aus dem Verzeichnis bin / obj.
Build-Lösung erstellt alle Projekte in der Lösung, die sich geändert haben. Beim erneuten Erstellen werden alle Projekte erstellt, egal was passiert. Die saubere Lösung entfernt alle temporären Dateien, um sicherzustellen, dass der nächste Build abgeschlossen ist.
Build-Lösung - Mit der Build-Lösung wird Ihre Anwendung erstellt, indem die Anzahl der Projekte erstellt wird, bei denen eine Datei geändert wird. Außerdem werden keine vorhandenen Binärdateien gelöscht und nur aktualisierte Assemblys im Ordner bin oder obj ersetzt.
Rebuild-Lösung - Mit der Rebuild-Lösung wird Ihre gesamte Anwendung erstellt, indem alle in Ihrer Lösung verfügbaren Projekte erstellt und bereinigt werden. Vor dem Erstellen werden alle Binärdateien aus den Ordnern bin und obj gelöscht.
Saubere Lösung - Bei der sauberen Lösung werden nur alle Binärdateien aus den Ordnern bin und obj gelöscht.
Lösung erstellen
Dadurch wird ein inkrementeller Build ausgeführt. Mit anderen Worten, es werden nur Codedateien erstellt, die sich geändert haben. Wenn sie nicht geändert wurden, werden diese Dateien nicht berührt.
Lösung neu erstellen
Dadurch werden alle derzeit kompilierten Dateien (z. B. exe und DLLs) gelöscht und alles von Grund auf neu erstellt, unabhängig davon, ob sich Code in der Datei ändert oder nicht.
Lösungsmenü reinigen
In diesem Menü werden alle kompilierten Dateien (dh EXE- und DLL-Dateien) aus dem Verzeichnis bin / obj gelöscht.
Rebuild = Clean + Build
Ich denke, die Leute lassen aus, dass Build und Clean beide Aufgaben sind, die auf dem Wissen von Visual Studio über Ihr Projekt / Ihre Lösung basieren. Ich sehe viele Beschwerden darüber, dass Clean nicht funktioniert oder übrig gebliebene Dateien hinterlässt oder nicht vertrauenswürdig ist, obwohl die Gründe, aus denen Sie sagen, dass es nicht vertrauenswürdig ist, es tatsächlich vertrauenswürdiger machen.
Clean entfernt nur (saubere) Dateien und / oder Verzeichnisse, die Visual Studio oder der Compiler selbst erstellt haben. Wenn Sie Ihre eigenen Dateien kopieren oder Dateien / Ordnerstrukturen von einem externen Tool oder einer externen Quelle erstellt werden, "weiß Visual Studio nicht, dass sie vorhanden sind" und sollte sie daher nicht berühren.
Können Sie sich vorstellen, dass der Clean-Vorgang im Grunde ein "del *. *" Durchgeführt hat? Dies könnte katastrophal sein.
Build führt eine Kompilierung für geänderte oder erforderliche Projekte durch.
Rebuild führt eine Kompilierung durch, unabhängig von Änderungen oder was erforderlich ist.
Clean entfernt Dateien / Ordner, die in der Vergangenheit erstellt wurden, lässt jedoch alles übrig, mit dem es anfangs nichts zu tun hatte.
Ich hoffe das geht ein bisschen weiter und hilft.
Ich habe aa Blindlösung BuildRebuildClean
und drei Klassenbibliothek Models
, Repository
, Notification
.
Ich benutze Models
und Repository
in der Notification
Klassenbibliothek.
Dann:
Models
Bibliotheksprojekt ändern, dann BUILD-Lösung. Beziehen Sie sich im folgenden Screenshot auf den Zeitstempel der DLL, EXE wird in Models
und Notification
Bibliothek aktualisiert .BuildRebuildClean
. Es löscht alle Assemblys, EXEs und verwiesenen Dateien, um sie erneut zu kompilieren.Alles, was ich weiß, ist, dass ein Clean nicht das tut, was "make clean" früher getan hat. Wenn ich eine Lösung säubere, würde ich erwarten, dass sie obj- und bin-Dateien / -Ordner so löscht, dass sie so erstellt werden, als wäre sie ein neues Auschecken der Quelle. Nach meiner Erfahrung finde ich jedoch häufig Zeiten, in denen ein Bereinigen und Erstellen oder Wiederherstellen immer noch seltsame Fehler in der Quelle verursacht, von denen bekannt ist, dass sie kompiliert werden, und was erforderlich ist, ist ein manuelles Löschen der Ordner bin / obj, dann wird es erstellt.
Lösung erstellen erstellt nur die Projekte, die sich in der Lösung geändert haben, und wirkt sich nicht auf Assemblys aus, die sich nicht geändert haben.
ReBuild bereinigt zuerst alle Assemblys von der Lösung und erstellt dann die gesamte Lösung, unabhängig von den vorgenommenen Änderungen.
Reinigen, reinigt einfach die Lösung.
Dies betrifft nur die Option "Lösung erstellen".
Ich hatte die Unfähigkeit von Visual Studio satt, wirklich saubere Lösungen zu finden, und schrieb dieses kleine Tool , das dies für Sie erledigt.
Schließen Sie Ihre Lösung zuerst in VS und ziehen Sie den Ordner aus dem Windows Explorer in diese App oder in das entsprechende Symbol. Abhängig von der Einstellung am unteren Rand des Fensters können auch zusätzliche Elemente entfernt werden. Dies ist hilfreich, wenn Sie versuchen, Ihre Lösung manuell auf GitHub hochzuladen oder für andere Personen freizugeben:
Kurz gesagt, es werden alle "Debug" -Ordner, Intellisense und andere Caches, die von VS neu erstellt werden können, in den Papierkorb für Sie abgelegt.