Debuggen von .NET innerhalb eines Containers
Voraussetzungen
-
Installieren Sie das .NET SDK, das die Unterstützung für das Anhängen an den .NET-Debugger enthält. Mit .NET SDK 7 oder neuer haben Sie die Möglichkeit, ohne Dockerfile zu debuggen.
-
Installieren Sie die C#-Erweiterung für Visual Studio Code, die die Unterstützung für das Anhängen an den .NET-Debugger mit VS Code enthält.
-
Nur für macOS-Benutzer: Fügen Sie
/usr/local/share/dotnet/sdk/NuGetFallbackFolderals freigegebenen Ordner in Ihren Docker-Einstellungen hinzu.
Anleitung
- Erstellen Sie bei Bedarf ein .NET-Projekt mit
dotnet new. - Öffnen Sie den Projektordner in VS Code.
- Legen Sie optional einen Haltepunkt fest.
.NET SDK vs. Dockerfile-Build
Es gibt zwei Möglichkeiten, Ihre App innerhalb eines Containers zu erstellen und zu debuggen: über ein Dockerfile oder (für .NET 7 und neuer) ohne Dockerfile.
.NET SDK Container-Build (Debuggen ohne Dockerfile)
Diese Option wird für Webprojekte unterstützt und ist verfügbar, wenn Docker für die Verwendung von Linux-Containern konfiguriert ist.
- Drücken Sie F5 oder wählen Sie Debuggen starten aus dem Menü Ausführen. (Wenn Sie vorhandene Startprofile in
launch.jsonhaben, können Sie diese mit ⌘/ (Windows, Linux Ctrl+/) auskommentieren) - Sie werden mit einer Liste von Debuggern aufgefordert. Wählen Sie Container: In Container debuggen
- Wenn Sie aufgefordert werden, zwischen dem Erstellen mit einem
Dockerfile(Dockerfile verwenden) und dem Erstellen mit dem .NET SDK (.NET SDK verwenden) zu wählen, wählen Sie .NET SDK verwenden. - Wenn Sie mehrere Projektdateien in Ihrem Arbeitsbereich haben, wählen Sie die Projektdatei aus, die dem Projekt zugeordnet ist, das Sie debuggen möchten. Wenn der Build erfolgreich ist, wird Ihre .NET-App in einem Container ausgeführt und die Web-App in Ihrem Browser geöffnet.
Hinweis: Unterstützte .NET SDK-Versionen: Diese Funktion ist standardmäßig für .NET SDK Version 7.0.300 und höher verfügbar. Für Versionen zwischen 7.0.100 und 7.0.300 aktivieren Sie sie mit
dotnet add package Microsoft.NET.Build.Containers. Weitere Informationen zum .NET SDK Container-Build finden Sie auf Microsoft Learn.
Debuggen mit Dockerfile
-
Warten Sie, bis eine Benachrichtigung erscheint, die fragt, ob Sie die erforderlichen Assets zum Debuggen hinzufügen möchten. Wählen Sie Ja

-
Öffnen Sie die Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) und geben Sie Container: Docker-Dateien zum Arbeitsbereich hinzufügen... ein. Wenn Sie Ihre App bereits in einen Container verpackt haben, können Sie stattdessen Container: Für Container-Debugging initialisieren ausführen. Befolgen Sie die Anweisungen.
-
Wechseln Sie zur Ansicht Ausführen und Debuggen (⇧⌘D (Windows, Linux Ctrl+Shift+D)).
-
Wählen Sie die Startkonfiguration Container: .NET Launch aus.
-
Starten Sie das Debuggen! (F5)
Ausführen und Debuggen mit SSL-Unterstützung
Um SSL (über das HTTPS-Protokoll) zu aktivieren, müssen Sie einige Änderungen an Ihrer Konfiguration vornehmen.
-
Fügen Sie im Dockerfile einen
EXPOSE-Befehl im Basisabschnitt hinzu, um einen separaten Port für HTTPS/SSL zu definieren. Behalten Sie einen separatenEXPOSE-Befehl mit einem anderen Port für HTTP-Anfragen bei.FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base WORKDIR /app EXPOSE 5000 EXPOSE 5001 -
Fügen Sie in der Datei
.vscode/tasks.jsonconfigureSsl: truezum AbschnittnetCorehinzu. Fügen Sie außerdem eine UmgebungsvariableASPNETCORE_URLSim AbschnittdockerRunder Aufgabedocker-run: debughinzu, mit denselben Portnummern, die Sie im Dockerfile definiert haben.dockerRun: { "env": { "ASPNETCORE_URLS": "https://+:5001;http://+:5000" } } netCore: { "appProject": "${workspacefolder}/MyProject.csproj", "enableDebugging": true, "configureSsl": true }
Weitere Anpassungsoptionen finden Sie in der Dokumentation zu Tasks und Debuggen von containerisierten Apps.
Speichern der Projektdatei-Präferenz für den .NET SDK Container-Build
Wenn Sie einen Arbeitsbereich mit mehreren .NET-Projektdateien haben und ausschließlich ein bestimmtes Projekt debuggen möchten (ohne jedes Mal zur Auswahl einer Liste von Projektdateien aufgefordert zu werden, wenn Sie F5 drücken), können Sie Ihr Startprofil speichern, indem Sie die folgenden Schritte ausführen
-
Befolgen Sie die Schritte unter .NET SDK Container-Build und halten Sie die Debug-Sitzung aufrecht.
-
Klicken Sie auf das
Zahnrad-Symbol in Ihrer Debugger-Ansicht.
-
Wählen Sie Container: In Container debuggen
-
Wählen Sie die Projektdatei aus, die dem Projekt zugeordnet ist, das Sie debuggen möchten
Ihre Projekteinstellung wird gespeichert, und Sie müssen keine Projektdatei mehr auf F5 auswählen