Отладка .NET Core с помощью VS Code - "Только 64-битные процессы можно отлаживать"
У меня нет VS 2017, и я буду строить веб-интерфейс в VS Code в любом случае, поэтому я хочу использовать VS Code.
Пока не появится .NET Standard 2.0, наши библиотеки также находятся в 4.6.1, поэтому я нацелен на net461 в моем .NET Core csproj:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />
</ItemGroup>
</Project>
Проект является самым простым приложением dotnet new webapi
для начинающих. Я могу построить и запустить с dotnet build
и dotnet run
. Я также получил последнее расширение ms-vscode.csharp 1.8.1.
Однако, когда я пытаюсь подключить или отладить это приложение с помощью VS Code, я получаю сообщение об ошибке
Не удалось подключиться к процессу: можно отлаживать только 64-битные процессы
Даже с консоли, а затем с очень простой конфигурацией:
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickProcess}"
}
И выбор процесса с этой ошибкой завершается. Я попытался создать exe-таргетинг на x64 с помощью:
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
<Platform>x64</Platform>
</PropertyGroup>
Но он производит ту же ошибку. Кто-нибудь знает исправить? Кажется, потому, что я нацелен на net461, отлаживает .Net Core не поддерживает таргетинг на другие фреймворки?
Ответы
Ответ 1
Версия 1.9.0 расширения ms-vscode.csharp добавила поддержку CLR для настольных ПК.
Измените файл launch.json:
"type" : "clr",
"program" : "path to x64 version of the executable.exe"
Чтобы настроить таргетинг на x64, измените файл .csproj следующим образом:
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
<RuntimeIdentifier>win7-x64</RuntimeIdentifier>
</PropertyGroup>
Пример пути программы после указания идентификатора времени выполнения:
"program" : ${workspaceRoot}/src/bin/Debug/net461/win7-x64/example.exe
Ответ 2
Ниже работало для меня:
- Перейти к переменным среды
- Выберите Изменить для системной переменной Path
- Переместите C:\Program Files\dotnet\entry вверх над C:\Program Files (x86)\dotnet\
- Нажмите ОК
- Закройте и снова запустите VS Code.
Ответ 3
Мне пришлось переустанавливать зависимости напрямую. Если вы использовали менеджер пакетов, например chocolatey, для установки зависимостей, таких как "azure-functions-core-tools" или "dotnet core", вам придется удалить их из Chocolatey и установить напрямую.