5 wesentliche .NET CLI-Befehle, die jeder Entwickler kennen sollte
[[academy-video-youtube({"vid": "aSmmh-F5KCw", "start_time": "0", "title": "5 Wichtige .NET CLI Befehle, die jeder Entwickler kennen sollte", "creator": "Tim Corey", "length": "9m 30s"})]]
Die meisten C#-Entwickler verbringen ihren gesamten Arbeitsablauf in einer IDE, klicken auf Schaltflächen, um ihre Anwendungen zu kompilieren, zu starten und zu testen. Das funktioniert, bis es nicht mehr funktioniert. Automatisierungspipelines, entfernte Server und containerisierte Umgebungen haben keine grafische Benutzeroberfläche und das Wissen um einige Terminals-Befehle hält Sie in solchen Situationen produktiv, ohne auf die Maus zurückgreifen zu müssen.
In seinem Video "5 essentielle .NET CLI-Befehle, die jeder Entwickler kennen sollte" führt Tim Corey durch die fünf .NET-Operationen, die den größten Teil der alltäglichen Entwicklung abdecken: build, run, watch, clean und publish. Jeder Befehl wird praktisch demonstriert, wobei nicht nur die Syntax gezeigt wird, sondern auch wann und warum Sie ihn verwenden würden. Egal, ob Sie sich im Terminal wohlfühlen oder selten eines öffnen, diese Befehle sind es wert, sie zu behalten.
Ihre Umgebung mit .NET --info überprüfen
[0:31 - 1:25] Bevor er irgendwelche Projektbefehle ausführt, beginnt Tim damit, die Entwicklungsumgebung zu überprüfen. Der dotnet Befehl allein bestätigt, dass die CLI installiert und auf Ihrem Pfad zugänglich ist, aber dotnet --info geht weiter:
dotnet --info
dotnet --info
Dies gibt jede auf Ihrem Rechner installierte SDK- und Laufzeitversion sowie die Details des Betriebssystems und der aktiven Architektur aus. Tim demonstriert dies an .NET 10, aber der Befehl funktioniert auf jeder Version identisch. Wissen, was Sie installiert haben, ist besonders hilfreich beim Debuggen von Versionsunterschieden oder um zu überprüfen, ob ein CI-Server Ihr lokales Setup widerspiegelt.
Befehl 1: .NET build
[2:16 - 3:44] Der erste Befehl kompiliert Ihr Projekt, ohne es zu starten:
dotnet build
dotnet build
Wenn Sie dies aus dem Projektverzeichnis ausführen, liest es die .csproj Datei, löst Abhängigkeiten auf und produziert kompilierten Output im bin Ordner. Tim weist darauf hin, dass die Kompilierung ein eigener, separater Schritt ist, getrennt von der Ausführung. Diese Trennung ist wichtig, wenn Sie sicherstellen möchten, dass Ihr Code sauber kompiliert, bevor Sie ihn in ein Repository schieben oder an einen Build-Server weitergeben.
Das .NET SDK handhabt die Abhängigkeitsauflösung während des Build-Prozesses, indem fehlende NuGet-Pakete gezogen werden und sichergestellt wird, dass alle referenzierten Assemblys vorhanden sind. Wenn in dieser Phase etwas fehlschlägt, weisen die Fehlermeldungen direkt auf das Problem hin, sei es ein fehlender Verweis, ein Syntaxfehler oder ein Zielrahmen-Mismatch. Diese Probleme vor dem Ausführen der Anwendung zu erkennen, spart Zeit im gesamten Entwicklungszyklus.
Befehl 2: .NET run
[3:44 - 5:42] Während build bei der Kompilierung aufhört, macht run den nächsten Schritt und startet die Anwendung:
dotnet run
dotnet run
Dies kompiliert das Projekt (falls erforderlich) und führt dann das resultierende Ergebnis aus. Für eine Konsolenanwendung bedeutet dies, dass sie im Terminal ausgeführt wird. Für ein Webprojekt startet der integrierte Kestrel-Server und die App ist unter einer lokalen URL verfügbar.
Tim demonstriert dies mit einer Webanwendung, indem er auf die laufende Seite in einem Browser navigiert, um zu bestätigen, dass alles korrekt geladen wird. Der entscheidende Unterschied zwischen build und run ist, dass run ein live, interaktives Ergebnis liefert. Während der aktiven Entwicklung ist dies der Befehl, den Sie am häufigsten verwenden werden, um Änderungen zu testen und deren Auswirkungen zu sehen.
Befehl 3: .NET watch
[5:42 - 7:06] Die Anwendung zu stoppen, eine Änderung vorzunehmen und sie neu zu starten, wird schnell mühsam. Der watch Befehl eliminiert diesen Zyklus:
dotnet watch
dotnet watch
Dieser umschließt den Ausführungsprozess in einem Dateiüberwacher. Wenn Sie eine Änderung an einer Quelldatei speichern, erkennt die CLI die Änderung und kompiliert und aktualisiert die Anwendung automatisch. Für mit ASP.NET Core erstellte Webanwendungen erscheinen Änderungen an Razor-Dateien, CSS und C#-Code im Browser, ohne dass ein manueller Neustart erforderlich ist.
Tim zeigt das Hot-Reload-Verhalten in Aktion: eine Seite bearbeiten, speichern und die Aktualisierung sofort sehen. Dieser enge Feedback-Zyklus ist wertvoll bei der Arbeit an der Benutzeroberfläche, wo ständig kleine Anpassungen erfolgen. Anstatt durch Stop-Bearbeiten-Neukompilieren-Starten zu gehen, bleiben Sie auf den Code konzentriert und lassen Sie die Werkzeuge den Rest erledigen.
Befehl 4: .NET clean
[7:06 - 7:56] Build-Artefakte sammeln sich im Laufe der Zeit in den bin und obj Verzeichnissen an. Gelegentlich verursachen veraltete kompilierte Dateien verwirrendes Verhalten, bei dem Ihre neuesten Code-Änderungen nicht wirksam zu werden scheinen, oder bei dem ein Build lokal erfolgreich ist, aber auf einem neuen Rechner fehlschlägt. Der clean Befehl behebt dies:
dotnet clean
dotnet clean
Während des Ausführens entfernt er den Inhalt der Ausgabeverzeichnisse, sodass Ihr nächster Build von Grund auf neu beginnt. Tim sieht dies als ein Werkzeug zur Fehlersuche an, anstatt etwas, das Sie nach jeder Änderung ausführen. Wenn sich Ihr Projekt unerwartet verhält und Sie vermuten, dass zwischengespeicherter Output die Ursache ist, sorgt clean gefolgt von build dafür, dass Sie mit einer wirklich frischen Kompilierung arbeiten.
Diese Gewohnheit ist besonders nützlich beim Wechseln von Branches in der Versionskontrolle, beim Aktualisieren einer Abhängigkeit auf eine neue Hauptversion oder beim Beheben von intermittierenden Build-Warnungen, die scheinbar ohne klare Ursache erscheinen und verschwinden.
Befehl 5: .NET publish
[7:56 - 9:01] Der letzte Befehl schlägt die Brücke zwischen Entwicklung und Bereitstellung:
dotnet publish
dotnet publish
Während build Output erzeugt, der für lokales Debugging geeignet ist, erstellt publish ein einsatzbereites Paket. Die kompilierten Assemblies, Konfigurationsdateien, statischen Assets und alle erforderlichen Laufzeitkomponenten landen in einem publish Ordner, den Sie direkt auf einen Server kopieren können.
Der Unterschied zwischen build und publish überrascht einige Entwickler. Der build Output enthält Debug-Symbole und Verweise, die während der Entwicklung nützlich sind, aber in der Produktion unnötig (und manchmal unerwünscht) sind. Das Veröffentlichen entfernt diese Extras und organisiert die Ausgabe für ihre Zielumgebung. Beim Bereitstellen in Docker oder Hochladen in eine Cloud-Hostingplattform ist die veröffentlichte Ausgabe das, was in Ihr endgültiges Image oder Release-Paket gehört.
Abschluss: Fünf Befehle, ein Workflow
[9:01 - 9:15] Tim schließt, indem er alle fünf zusammen auflistet: dotnet build, dotnet run, dotnet watch, dotnet clean und dotnet publish. Als Set betrachtet, decken sie die Kernentwicklungsroutine von der Kompilierung bis zur Bereitstellung ab. Jeder hat einen bestimmten Zweck, und wissen, wann man welchen verwenden sollte, gibt Ihnen ein Maß an Kontrolle, das Klicks in einer IDE allein nicht bieten können.
Abschluss
[9:15 - 9:30] Diese fünf CLI-Befehle behandeln die Aufgaben, die Sie am häufigsten während der Entwicklung ausführen: Kompilieren, Ausführen, Live-Reloading, Entfernen veralteter Ausgaben und Verpacken für die Veröffentlichung. Sie funktionieren über jeden .NET-Projekttyp und jedes Betriebssystem, das das SDK unterstützt.
Das nächste Mal, wenn Sie ein Terminal öffnen, sei es auf Ihrem lokalen Rechner, in einem Container oder auf einem entfernten Server, haben Sie das Vokabular, um ohne grafische Oberfläche durch den gesamten Entwicklungszyklus zu gehen.
Beispiel-Tipp: Sie können clean und build in eine einzelne Zeile mit dotnet clean && dotnet build verketten. Damit wird eine Kompilierung von Grund auf in einem Schritt garantiert, was besonders praktisch ist, wenn Sie Probleme beheben, die in inkrementellen Builds bestehen.
Sehen Sie das vollständige Video auf seinem YouTube-Kanal und erfahren Sie mehr über die .NET CLI Essentials.
