【问题标题】:VS Code 1.19.3 debugging .net core 2 and always meet "Only 64-bit processes can be debugged"VS Code 1.19.3 调试.net core 2 总是遇到“只能调试64位进程”
【发布时间】:2018-07-10 07:01:42
【问题描述】:

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

然后我尝试了:

  1. 我看了.NET Core debugging with VS Code - “Only 64-bit processes can be debugged”的问题。并且似乎根本不适合我跟随更改json文件和csproj文件的答案。

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

  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"
        }
    ]
    

    }

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

我有 x64 vscode,我有 x64 sdk & runtime,我用 x64 版本的 sdk 创建和编译,从内部终端显示编译成功。

有人知道为什么以及如何绕过这个错误并能够调试吗?(请不要告诉我安装 VS,它对我来说非常重要。)

【问题讨论】:

    标签: c# debugging visual-studio-code


    【解决方案1】:
    1. 转到环境变量
    2. 为路径系统变量选择编辑
    3. 将 C:\Program Files\dotnet\ 条目向上移动到 C:\Program Files (x86)\dotnet\
    4. 点击确定
    5. 关闭并重新启动 VS Code。

    【讨论】:

    • 这对我有帮助,这很简单。谢谢。
    【解决方案2】:

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

    1. 运行choco uninstall azure-functions-core-tools
    2. here下载nupkg文件
    3. 编辑 tools\chocolateyinstall.ps1 脚本(将 url 中的 x86 更改为 x64)
    4. 在编辑过的 nupkg 文件所在的文件夹中运行 choco install azure-functions-core-tools -source . --ignore-checksums
    5. 享受在 VSCode 中调试函数的乐趣

    【讨论】:

    • 好发现!通过巧克力安装功能核心工具后,我遇到了完全相同的问题。顺便说一句,从 npm 安装它们会下载正确的版本。
    • 对于像我这样想知道如何查找/编辑 Chocolateyinstall.ps1 的人,您可以使用 nuget 包资源管理器 github.com/NuGetPackageExplorer/NuGetPackageExplorer 对其进行修改
    • 我可以通过将 x64 参数直接传递给 choco install 命令choco install azure-functions-core-tools --params "'/x64:true'" 来安装它
    【解决方案3】:

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

    原因:

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

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

    我的解决方案很简单:

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

    1. 彻底卸载 x86 .net sdk。

    【讨论】:

    • 没有为我修复它,因为我只安装了 x64 版本:(
    • 只安装 x64 版本的 vscode,也只安装 x64 版本的 .net core。它可能会绕过这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 2018-07-09
    • 2019-05-30
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    相关资源
    最近更新 更多