无法找到任何已安装的 .NET SDK

han*_*shi 0 c# asp.net omnisharp visual-studio-code asp.net-core

我已经安装了多个版本的 .NET Sdk。现在 Omnisharp 建议无法正常工作。

输出显示这些

[info]: OmniSharp.MSBuild.ProjectManager
        Loading project: /BO-V2/Techne-Travel/travel-techne-bo-for-ota/src/Application/Application.csproj
A compatible installed .NET SDK for global.json version [6.0.101] from [/BO-V2/Techne-Travel/travel-techne-bo-for-ota/global.json] was not found.
Install the [6.0.101] .NET SDK or update [/BO-V2/Techne-Travel/travel-techne-bo-for-ota/global.json] with an installed .NET SDK:
  It was not possible to find any installed .NET SDKs.
Install a .NET SDK from:
  https://aka.ms/dotnet-download
A compatible installed .NET SDK for global.json version [6.0.101] from [/BO-V2/Techne-Travel/travel-techne-bo-for-ota/global.json] was not found.
Install the [6.0.101] .NET SDK or update [/BO-V2/Techne-Travel/travel-techne-bo-for-ota/global.json] with an installed .NET SDK:
  It was not possible to find any installed .NET SDKs.
Install a .NET SDK from:
  https://aka.ms/dotnet-download
[fail]: OmniSharp.MSBuild.ProjectLoader
        Unable to locate the .NET SDK. Check that it is installed and that the version specified in global.json (if any) matches the installed version.
[fail]: OmniSharp.MSBuild.ProjectLoader
        The SDK 'Microsoft.NET.SDK.WorkloadAutoImportPropsLocator' specified could not be found.
[fail]: OmniSharp.MSBuild.ProjectManager
Run Code Online (Sandbox Code Playgroud)

但是 dotnet --info 显示了这个输出


.NET SDK (reflecting any global.json):
 Version:   6.0.101
 Commit:    ef49f6213a

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  20.04
 OS Platform: Linux
 RID:         ubuntu.20.04-x64
 Base Path:   /usr/share/dotnet/sdk/6.0.101/

Host (useful for support):
  Version: 6.0.1
  Commit:  3a25a7f1cc

.NET SDKs installed:
  3.1.415 [/usr/share/dotnet/sdk]
  5.0.100 [/usr/share/dotnet/sdk]
  5.0.209 [/usr/share/dotnet/sdk]
  5.0.403 [/usr/share/dotnet/sdk]
  6.0.100 [/usr/share/dotnet/sdk]
  6.0.101 [/usr/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 3.1.21 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.12 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 6.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 6.0.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.21 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.13 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.1 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download

Run Code Online (Sandbox Code Playgroud)

哪个 dotnet 命令

/usr/bin/dotnet

Run Code Online (Sandbox Code Playgroud)

我在谷歌中搜索并找到了这个 https://www.py4u.net/discuss/1941159

我按照他们说的做了下面的事情。但我仍然面临同样的问题。为什么会出现这个问题?我该如何解决这个setting.json

{
    "editor.formatOnSave": false,
    "editor.codeActionsOnSave": {
        "source.fixAll": false
    },
    "omnisharp.path": "latest",
}
Run Code Online (Sandbox Code Playgroud)

omn​​isharp.json

{
    "MsBuild": {
        "UseLegacySdkResolver": true
    }
}
Run Code Online (Sandbox Code Playgroud)

全局.json

{
  "sdk": {
    "version": "6.0.101",
    "rollForward": "latestMinor"
  }
}
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能使omnisharp正常工作?如果没有 Omnisharp 建议,我就无法继续工作。很难编码。请帮我。

小智 8

请参阅此处的文档https://github.com/OmniSharp/omnisharp-vscode

使用 .NET 6 版本的 OmniSharp 从 C# 扩展版本 1.24.0 开始,现在可以选择使用在 .NET 6 SDK 上运行的 OmniSharp 版本。此构建需要安装 .NET 6 SDK,并且不使用 Visual Studio MSBuild 工具或 Mono。它仅支持可使用 dotnet build 构建的较新的 SDK 样式项目。不支持 Unity 项目和其他完整框架项目。

要使用 .NET 6 版本,请在 VS Code 设置中设置omnisharp.useModernNet为并重新启动 OmniSharp。true