使用VS Code进行.NET Core调试 - "只能调试64位进程"

Joe*_*Joe 11 visual-studio-code asp.net-core

我没有VS 2017,我将在VS Code中构建一个Web前端,所以我想使用VS Code.

在.NET Standard 2.0发布之前,我们的库也在4.6.1中,所以我在我的.NET Core csproj中使用net461:

<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>
Run Code Online (Sandbox Code Playgroud)

该项目是最简单的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}"
}
Run Code Online (Sandbox Code Playgroud)

选择该过程会因此错误而失败.我尝试使用以下命令构建针对x64的exe:

<PropertyGroup>
  <TargetFramework>net461</TargetFramework>
  <Platform>x64</Platform>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

但它会产生同样的错误.有人知道修复吗?这似乎是因为我的目标是net461,调试.Net Core不支持针对其他框架吗?

小智 12

ms-vscode.csharp扩展的1.9.0版添加了桌面CLR支持.

修改launch.json文件:

"type" : "clr",
"program" : "path to x64 version of the executable.exe"
Run Code Online (Sandbox Code Playgroud)

要定位x64,请修改.csproj文件,如下所示:

<PropertyGroup>
  <TargetFramework>net461</TargetFramework>
  <RuntimeIdentifier>win7-x64</RuntimeIdentifier>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

指定运行时标识后的示例程序路径:

"program" : ${workspaceRoot}/src/bin/Debug/net461/win7-x64/example.exe
Run Code Online (Sandbox Code Playgroud)


Val*_*kov 7

失去一天后“该怎么办......”

  1. 这是我使用 UPDATE 移动到版本 3 的步骤,因为它给了我一个“旧版本正在使用中”

从版本 2 到版本 3

您需要以管理员身份运行 CMD 如果您没有安装它可以跳到第 3 步


choco 升级 azure-functions-core-tools-3
  1. 我卸载它
    choco uninstall azure-functions-core-tools-3

然后

THE MOMENT OF TRUTH 要安装允许您调试的 64 位版本,您可以使用命令


巧克力安装 azure-functions-core-tools-3 --params="'/x64:true'"

营商事工工作

解决方案在第一条评论中

https://chocolatey.org/packages/azure-functions-core-tools-3#install

感谢 Tyler Doerksen 救生员!!!!


小智 5

以下为我工作:

  1. 转到环境变量
  2. 为路径系统变量选择编辑
  3. 将 C:\Program Files\dotnet\ 条目向上移动到 C:\Program Files (x86)\dotnet\
  4. 单击确定
  5. 关闭并再次启动 VS Code。