【问题标题】:DotNet core 3.0 compilation issues in VSCodeVSCode 中的 DotNet core 3.0 编译问题
【发布时间】:2019-10-06 12:55:47
【问题描述】:

我是 DotnetCore 和 MS 编程的新手。随着 MS 对平台中立性的新推动,我有兴趣尝试一下,看看它是否按承诺的方式工作。也就是说,我什至在 VSCode 上的 Windows 上的 DotNetCore 上运行 helloworld 程序时遇到了问题。在我的命令提示符和 VisualStudio 2019(我的 mac 的 VS Studio for mac)上似乎一切正常。真正的压力似乎在 Windows 10 中的 VSCode 上。如果可以的话,我将不胜感激

我收到的错误是“找不到 coreclr 类型的调试适配器”。无论我做什么,我都会遇到这个错误。 1.安装Dotnet core 3.0 2. 设置指向 C:\Program Files\dotnet\sdk\3.0.100\Sdks 的 MSBuildSDKsPath 环境变量 3.多次重启机器

没有任何作用。这是示例代码以及我的launch.json。

using System;

namespace OOPExample
{
    public struct Dimensions {
        public double Length { get; }
        public double Width { get; }

        public Dimensions(double length, double width) {
            Length = length;
            Width= width;
        }

        public double Diagonal => Math.Sqrt(Length * Length + Width * Width);
    }

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine($"Hello World - {new Dimensions(10.0, 15.0).Diagonal}");
        }
    }
}

这是我的 launch.json

{
   // Use IntelliSense to find out which attributes exist for C# debugging
   // Use hover for the description of the existing attributes
   // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
   "version": "0.2.0",
   "configurations": [
        {
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            // If you have changed target frameworks, make sure to update the program path.
            "program": "${workspaceFolder}/bin/Debug/netcoreapp3.0/OOPExample.dll",
            "args": [],
            "cwd": "${workspaceFolder}",
            // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
            "console": "internalConsole",
            "stopAtEntry": false
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        }
    ]
}

当我从命令提示符执行 dotnet build 和 dotnet run 时,一切都很好

dotnet 构建:

C:\Users\Krishnan\Projects\DotNet\OOPExample> dotnet build
Microsoft (R) Build Engine version 16.3.0+0f4c62fea for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 12.86 ms for C:\Users\Krishnan\Projects\DotNet\OOPExample\OOPExample.csproj.
  OOPExample -> C:\Users\Krishnan\Projects\DotNet\OOPExample\bin\Debug\netcoreapp3.0\OOPExample.dll

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:00.77

dotnet 运行:

PS C:\Users\Krishnan\Projects\DotNet\OOPExample> dotnet run
Hello World - 18.027756377319946

如果您想知道我是如何创建这个项目的,那只不过是一个简单的 dotnet 新控制台命令。所以没什么特别的

【问题讨论】:

  • VSCode C# 扩展需要从 Internet 下载几个位,并且似乎在这台机器上这些下载失败。
  • 你安装了omnisharp吗?
  • 这是推荐的扩展“C# for Visual Studio Code(由 OmniSharp 提供支持)”,我安装了它。顺便说一句,正如我所说,我对 Ubuntu 或 Mac 没有任何问题,这个问题只在 Windows 10 上
  • @LexLi 我知道有些下载失败了。问题是它是哪一个以及如何解决它。
  • github.com/OmniSharp/omnisharp-vscode/wiki/… 你可能会从那里得到一些想法。

标签: c# .net-core visual-studio-code vscode-debugger


【解决方案1】:

也许这可以帮助遇到此问题的人:在过去一周中,我两次解决了此错误。

第一次卸载/重新安装 OmniSharp C# 扩展。

第二次更新 VSCode 到最新版本。

我还没有弄清楚这两件事是否相关,但我在 OmniSharp 或 VSC 发行说明中没有看到任何关于它的具体内容。

【讨论】:

  • 为我工作!我必须首先卸载 .NET Core 测试资源管理器(这取决于 OmniSharp C# 扩展),然后按照您的说法卸载。谢谢@Paully
【解决方案2】:

首先,确保你已经为 vs-code 安装了官方的微软 C# 扩展。 那么,如果仍然无法运行,那将是您的 launch.json 文件有问题。

【讨论】:

  • “C# for Visual Studio Code(由 OmniSharp 提供支持)”是推荐的扩展。它已安装。如果我需要安装其他扩展,请告诉我
【解决方案3】:

当我尝试开始调试时出现以下错误消息。

“找不到类型‘coreclr’的调试适配器”。

如果也出现以下错误消息,例如我的情况,我建议您也考虑单击“开发人员工具”,因为我认为您很有可能会得到一个很好的提示在那里。

“扩展主机意外终止”。

在上述消息的框中,我单击了“开发人员工具”,然后我可以看到一些包含字符串“kite”的错误消息,这让我猜测,就我而言,这些错误消息可能来自我很久以前安装的扩展“风筝”。禁用此扩展并重新启动 VS Code 后,均未再次出现错误消息。 (现在我不确定重启是否必要。)我并不是说扩展风筝很麻烦。在您的情况下,问题可能来自其他一些扩展或扩展以外的其他东西。我是说“开发者工具”可能是提示的金矿。

我还有一条好消息。后来,即使启用了这个扩展“风筝”,这些错误消息也没有出现。我可以在不放弃此扩展的情况下开始调试。

【讨论】:

    【解决方案4】:

    我收到了 OPs 错误消息,但仅在开发容器中使用“.NET Core Launch (web)”配置运行和调试时:

    找不到调试类型“coreclr”的调试适配器描述符(扩展可能无法激活)

    我在 C# 控制台上的 VS Code 的“输出”选项卡中注意到以下附加输出:

    Installing C# dependencies...
    Platform: linux, x86_64, name=ubuntu, version=20.04
    
    Downloading package 'OmniSharp for Linux (x64)'
    Retrying from 'https://roslynomnisharp.blob.core.windows.net/releases/1.37.8/omnisharp-linux-x64-1.37.8.zip'
    Failed at stage: downloadPackage
    Error: Failed to establish a socket connection to proxies: ["PROXY 127.0.0.1:8118"]
    

    Dev Container 似乎从主机获取了 HTTP_PROXYHTTPS_PROXY 环境变量,但作为访客容器,它的 127.0.0.1 地址与主机的 127.0.0.1 地址不同。

    我通过 Windows-Pause > Advanced System Settings > Advanced > Environment Variables... > 使用从ipconfig /all 返回的主机计算机的“公共”IP 地址修复了这个问题,例如:

    随后关闭并重新打开 VS Code,运行和调试现在在开发容器中按预期工作。

    【讨论】:

      【解决方案5】:

      我遇到了同样的问题,我刚刚从 dotnet 卸载了 Omnisharp 和所有扩展,关闭了 VSCode 并重新打开它,然后再次安装了所有东西(包 Omnisharp)。现在正在按预期工作。

      只是让注册我的 SO 是 Linux Ubuntu 20.04。

      【讨论】:

        【解决方案6】:

        我今天遇到了这个调试错误。我为解决此问题而采取的以下步骤可能对某人有所帮助。

        1. 卸载“C# for Visual Studio Code(由 OmniSharp 提供支持)”,然后重新安装。
        2. 关闭 Visual Studio 代码
        3. 重启 VS Code
        4. 启动了调试按钮

        希望对你有帮助!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-21
          • 1970-01-01
          • 2022-01-06
          • 1970-01-01
          • 2016-08-02
          • 2020-02-12
          相关资源
          最近更新 更多