Debuggen von .NET- und ASP.NET Core-Quellcode mit Visual Studio

So debuggen Sie .NET- und ASP.NET Core-Quellcode in Visual Studio

  • Deaktivieren Sie unter Tools –> Optionen –> Debuggen –> Allgemein die Option Nur meinen Code aktivieren.

    Nur eigenen Code aktivieren

  • Vergewissern Sie sich, dass Quelllinkunterstützung aktivieren aktiviert ist.

    Quelllinkunterstützung aktivieren

  • Aktivieren Sie unter Tools –> Optionen –-> Debuggen –> Symbole die Option Microsoft-Symbolserver.

    Microsoft-Symbolserver

Wenn Sie beliebigen .NET- oder ASP.NET Core-Code schrittweise ausführen, zeigt Visual Studio den Quellcode an. Beispiel:

  • Legen Sie einen Haltepunkt in OnGet in Pages/Privacy.cshtml.cs fest, und wählen Sie die Verknüpfung Privacy aus.

  • Wählen Sie eine der Optionen für Quelle herunterladen und Debuggen fortsetzen aus.

    Quelllink wird heruntergeladen

Die vorhergehenden Anweisungen funktionieren für das einfache schrittweise Ausführen von Funktionen, aber der optimierte .NET-Code entfernt oft lokale Variablen und Funktionen. So deaktivieren Sie Optimierungen und ermöglichen ein besseres Debuggen des Quellcodes

  • Aktivieren Sie unter Tools -> Optionen -> Debuggen -> Allgemein die Option JIT-Optimierung beim Laden von Modulen unterdrücken (nur verwaltet): JIT-Optimierung beim Laden von Modulen unterdrücken
  • Fügen Sie der Datei Properties/launchSettings.json die Umgebungsvariable und den COMPlus_ReadyToRun=0-Wert hinzu:
    {
      "iisSettings": {
        "windowsAuthentication": false,
        "anonymousAuthentication": true,
        "iisExpress": {
          "applicationUrl": "http://localhost:10892",
          "sslPort": 44315
        }
      },
      "profiles": {
        "WebApplication18": {
          "commandName": "Project",
          "dotnetRunMessages": true,
          "launchBrowser": true,
          "applicationUrl": "https://localhost:7045;http://localhost:5045",
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development",
            "COMPlus_ReadyToRun": "0"
          }
        },
        "IIS Express": {
          "commandName": "IISExpress",
          "launchBrowser": true,
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development",
            "COMPlus_ReadyToRun": "0"
          }
        }
      }
    }
    

Wenn Sie zuvor eine App mit der vorherigen Version von .NET gedebuggt haben, löschen Sie das Verzeichnis %TEMP%/SymbolCache, da es alte PDB-Dateien enthalten kann, die nicht mehr aktuell sind.

Debuggen von .NET Core unter UNIX über SSH

Zusätzliche Ressourcen