VS Code 1.19.3调试.net core 2并始终满足“只能调试64位进程”的要求

Dav*_*ith 3 c# debugging visual-studio-code

我已经在笔记本电脑上安装了.net core 2.0的 x86和x64 sdk (win 7 sp1 x64)。我不知道为什么vs代码(1.19.3&x64和官方c#扩展名)总是选择x86运行时自动生成控制台并总是遇到错误和弹出消息:“ 只能调试64位进程。 ”。

然后我尝试了:

  1. 我读了使用VS Code进行.NET Core调试的问题-“只能调试64位进程”。似乎根本不为我效仿,回答了更改json文件和csproj文件的问题。

  2. 我通过运行“ C:\ Program Files \ dotnet \ dotnet”新控制台尝试了简单的控制台项目。调试时出现错误消息。

  3. 另外,我尝试通过修改文件.vscode \ tasks.json来强制指向x64运行时进行构建:

    {

    "version": "2.0.0",
    "tasks": [
        {
            "taskName": "build",
            "command": "dotnet", --> change to "C:\\Program Files\\dotnet\\dotnet.exe"
            "type": "process",
            "args": [
                "build",
                "${workspaceFolder}/VSDebugCoreTest.csproj"
            ],
            "problemMatcher": "$msCompile"
        }
    ]
    
    Run Code Online (Sandbox Code Playgroud)

    }

错误消息仍然存在“只能调试64位进程”。

我已经使用过x64 vscode,已经使用过x64 sdk和运行时,并使用x64版本的sdk创建和编译,并且从内部终端向我展示了编译成功。

任何人都知道为什么以及如何绕过此错误并能够进行调试吗?(请不要告诉我安装VS,对我来说这是个很大的数目。)

Ant*_*ony 10

我在调试VSCode中的Azure函数时遇到了类似的问题。问题出在通过Chocolatey安装的azure-functions-core-tools中。当前它正在安装x86版本的工具。我为解决问题而采取的步骤:

  1. choco uninstall azure-functions-core-tools
  2. 这里下载nupkg文件
  3. 编辑tools \ chocolateyinstall.ps1脚本(在URL中将x86更改为x64)
  4. choco install azure-functions-core-tools -source . --ignore-checksums在已编辑nupkg文件所在的文件夹中运行
  5. 在VSCode中调试功能很有趣

  • 好发现!通过Chocolatey安装功能核心工具后,我遇到了完全相同的问题。顺便说一句,从npm安装它们会下载正确的版本。 (3认同)
  • 对于像我这样想知道如何查找/编辑Chocolateyinstall.ps1的人,您可以使用nuget包浏览器对其进行修改https://github.com/NuGetPackageExplorer/NuGetPackageExplorer (2认同)

Dav*_*ith 5

经过大约一天的排查,我得到了真正的原因和解决办法。感谢任何阅读我的问题的人。(自问自答)

原因:

  1. 我在 x64 旁边安装了 x86 .net core sdk。然后系统环境变量“path”包含C:\Program Files (x86)\dotnetC:\Program Files\dotnet
  2. Visual Studio Code中.net core的调试器现在仅支持x64版本。即使我强制使用 x64 进行构建,调试器也会识别路径中的dotnet.exe并隐式使用 x86 dotnet.exe 来运行x64 程序;

这就是为什么我总是收到错误消息:“只能调试 64 位进程。”

我的解决方案很简单:

  1. 从路径中删除C:\Program Files (x86)\dotnet ;

或者

  1. 彻底卸载x86 .net sdk。