Intellisense 在 VSCode 中不工作 - OmniSharp 错误

Intellisense not working in VSCode - OmniSharp Error

Intellisense 已停止为我工作,每当我 运行 VSCode OmniSharp 日志中都会出现此错误。

[warn]: OmniSharp.MSBuild.ProjectManager
        Failed to load project file '/Users/leogaunt/Documents/Programming/Unity/Cube Stack/Assembly-CSharp.csproj'.
/Users/leogaunt/Documents/Programming/Unity/Cube Stack/Assembly-CSharp.csproj
/Users/leogaunt/.vscode/extensions/ms-dotnettools.csharp-1.23.1/.omnisharp/1.37.0/omnisharp/.msbuild/Current/Bin/Microsoft.Common.CurrentVersion.targets(1178,5): Error: The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks

[fail]: OmniSharp.MSBuild.ProjectManager
        Attempted to update project that is not loaded: /Users/leogaunt/Documents/Programming/Unity/Cube Stack/Assembly-CSharp.csproj

我试过重新安装插件,并重新安装 VSCode 但没有成功。

我知道我安装了 .NET Core,因为我是 Mac 用户,我知道这一点是因为当我在终端中输入 dotnet --version 时,它会输出:

3.1.401

我正在使用 Unity 编程并为 iOS 创建游戏。

错误表明 OmniSharp 正在寻找 Version=v4.7.1。您可能需要安装它的 latest version

在 C# 扩展配置中将单声道路径更改为始终。

从 git 存储库中获取 Unity 后,我遇到了同样的问题。 对我来说,它可以在 Unity 中重置 .Net 版本。 编辑 -> 项目设置 -> Api 兼容级别

来回切换,重新启动VSCode。 .csproj 文件将归档所有丢失的 dll。

相信我,它会成功的,尝试了一切,然后来到了这里

  1. 进入 VS 代码 首选项
  2. 搜索 omnisharp.path 然后点击 在 settings.json
  3. 中编辑
  4. Add/edit line "omnisharp.path": "latest"(记得在上一行末尾加逗号)
  5. 返回设置并搜索 omnisharp,向下滚动直到找到 Use Global Mono,将其更改为 总是
  6. 之后你必须下载Mono,mac的单声道下载link是这个https://www.mono-project.com/download/stable/#download-mac
  7. 下载完成后,通过打开下载文件
  8. 进行设置
  9. 返回settings.json并添加mono的/bin路径为"omnisharp.monoPath": "/Library/Frameworks/Mono.framework/Versions/6.12.0/bin" 这是 mac 的默认下载路径,如果你想确认这一点,请进入 mac 的磁盘 space 然后按照上面提到的路径)
  10. 最后重新启动 VS Code 它应该可以工作(如果仍然没有,请再次重新启动)

我通过卸载所有 SDK 并安装 旧版 4.7.1 解决了这个问题,然后一切立即运行。

我遇到了同样的问题。这是我修复它的方法:

我将所有项目添加到解决方案文件 (dotnet sln add <project name>) 并通过将路径从终端传递到 vscode 在 vs 代码中打开项目 (code <project path>).

对于使用 VSCode v1.67.2 dotnet v3.x.x 和 OmniSharp v1.25.0(或 v1.23.17 及更高版本)的任何人。

上面接受的答案没有解决问题。

最简单的做法是降级 ms-dotnettools.csharp(C# 扩展),唯一的问题是如果您降级到 v1.23.16 以上的任何版本,它会提示您“无法安装 'ms-dotnettools.csharp' 扩展名,因为它与 Visual Studio 代码的当前版本(版本 1.67.2)不兼容

建议降级到1.23.16版本再重启vscode.

您的 Intellisense 应该开始工作了。

我的环境
点网 v3.1.417
VSCode v1.67.2
C# 扩展 v1.25.0(现已降级为 v1.23.16)
运行 在 Mac 主机上的远程容器中。

是的,我使用的是 3 年以上的 dotnet 版本。这是一个遗留软件,碰巧每个人的系统中都有骨架 ;)

我将 VS Code 的 C# 扩展从 1.25.0 降级到 1.24.3,它起作用了。