Отладка исходного кода .NET и ASP.NET Core с помощью Visual Studio

Чтобы выполнить отладку .NET и исходного кода ASP.NET Core в Visual Studio:

  • В разделе Сервис -> Параметры -> Отладка -> Общие снимите флажок Включение режима Только мой код.

    Enable Just My Code

  • Убедитесь, что установлен флажок Включить поддержку ссылок на источник.

    Enable Source Link support

  • В разделе Сервис -> Параметры -> Отладка -> Символы - включите Серверы символов Майкрософт.

    Microsoft Symbol Server

При переходе к коду .NET или ASP.NET Core Visual Studio отображает исходный код. Например:

  • Установите точку останова в OnGet в файле Pages/Privacy.cshtml.cs и выберите ссылку Privacy.

  • Выберите один из параметров скачивания источника и продолжения отладки.

    Source Link Will Download

Инструкции выше подходят для базового перехода в функции, но оптимизированный код .NET часто удаляет локальные переменные и функции. Чтобы отключить оптимизацию и обеспечить возможность более эффективной отладки источника:

  • В инструментах —>> параметры — отладка —> общие— включение оптимизации JIT для загрузки модуля (только для управляемого):Suppress JIT optimization on module load
  • Добавьте в файл Properties/launchSettings.json переменную среды и значение COMPlus_ReadyToRun=0:
    {
      "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"
          }
        }
      }
    }
    

Если вы выполнили отладку приложения до предыдущей версии .NET, удалите каталог %TEMP%/SymbolCache, так как в нем могут находиться устаревшие PDB-файлы.

Отладка .NET Core в UNIX через SSH

Дополнительные ресурсы