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.

    Enable Just My Code

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

    Enable Source Link support

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

    Microsoft Symbol Server

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.

    Source Link Will Download

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): Suppress JIT optimization on module load
  • 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