ist jetzt verfügbar! Lesen Sie über die neuen Funktionen und Fehlerbehebungen vom November.

Debuggen von .NET innerhalb eines Containers

Voraussetzungen

  1. 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.

  2. 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.

  3. Nur für macOS-Benutzer: Fügen Sie /usr/local/share/dotnet/sdk/NuGetFallbackFolder als freigegebenen Ordner in Ihren Docker-Einstellungen hinzu.

    dockerSharedFolders

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.

  1. Drücken Sie F5 oder wählen Sie Debuggen starten aus dem Menü Ausführen. (Wenn Sie vorhandene Startprofile in launch.json haben, können Sie diese mit ⌘/ (Windows, Linux Ctrl+/) auskommentieren)
  2. Sie werden mit einer Liste von Debuggern aufgefordert. Wählen Sie Container: In Container debuggen
  3. 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.
  4. 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

  1. Warten Sie, bis eine Benachrichtigung erscheint, die fragt, ob Sie die erforderlichen Assets zum Debuggen hinzufügen möchten. Wählen Sie Ja

    csharpPrompt

  2. Ö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.

  3. Wechseln Sie zur Ansicht Ausführen und Debuggen (⇧⌘D (Windows, Linux Ctrl+Shift+D)).

  4. Wählen Sie die Startkonfiguration Container: .NET Launch aus.

  5. 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.

  1. Fügen Sie im Dockerfile einen EXPOSE-Befehl im Basisabschnitt hinzu, um einen separaten Port für HTTPS/SSL zu definieren. Behalten Sie einen separaten EXPOSE-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
    
  2. Fügen Sie in der Datei .vscode/tasks.json configureSsl: true zum Abschnitt netCore hinzu. Fügen Sie außerdem eine Umgebungsvariable ASPNETCORE_URLS im Abschnitt dockerRun der Aufgabe docker-run: debug hinzu, 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

  1. Befolgen Sie die Schritte unter .NET SDK Container-Build und halten Sie die Debug-Sitzung aufrecht.

  2. Klicken Sie auf das Zahnrad-Symbol in Ihrer Debugger-Ansicht.

    dockerSharedFolders

  3. Wählen Sie Container: In Container debuggen

  4. 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

© . This site is unofficial and not affiliated with Microsoft.