【发布时间】:2021-06-05 00:55:40
【问题描述】:
我使用 VSCode 进行 Unity 开发。不幸的是,我没有在 VSCode 中为我的 C# 代码获得任何 IntelliSense。根本原因似乎是 OmniSharp 无法找到 Mono,因为 VSCode 中的 OmniSharp 日志显示:
"[ERROR] Error: Cannot start OmniSharp because Mono version >=6.4.0 is required."
这是我多次遇到的问题。在 2021 年 3 月 4 日和之前的几个月里,一切都运行良好,IntelliSense 可以完美地用于多个 Unity 项目和多个 Unity 版本。然后第二天它由于某种未知的原因坏了,并且没有为任何项目工作,直到深夜在尝试了一堆东西之后我才能够让它工作。现在今天早上我又遇到了这个错误。每次在它工作和崩溃之间,除了重新启动我的计算机之外,我没有做任何更改。
- MacOS Mojave 10.14.6
- Unity 2020.2.0f1 + 适用于 Unity 的 Visual Studio Code Editor 1.2.3 包
- VSCode 1.54.1 + C# 1.23.0 VSCode 插件
- 单声道 6.12.0.122 通过
brew安装在/usr/local/bin/mono - Mono 6.12.0 也手动安装在
/Library/Frameworks/Mono.framework/Versions/Current/Commands/ -
which mono在我的终端和 VSCode 的终端输出/usr/local/bin/mono -
mono --version在两个终端输出Mono JIT compiler version 6.12.0.122 -
echo $PATH包含两个版本的 Mono 的路径,/usr/local/bin/mono首先出现 -
msbuild输出Microsoft (R) Build Engine version 16.6.0 for Mono和which msbuild输出/usr/local/bin/msbuild -
dotnet --info输出.NET Core SDKVersion: 3.1.201
在我的 VSCode 设置中,我设置了以下内容:
"omnisharp.loggingLevel": "debug",
"omnisharp.monoPath": "/usr/local/bin/mono",
"omnisharp.useGlobalMono": "always"
我尝试过的事情:
- 降级/升级 VSCode 的 C# 插件(包括到最新版本的 1.23.9)
- 降级 Unity 的 Visual Studio Code Editor 包
- 切换 VSCode 以使用我在
/Library/Frameworks/Mono.framework/Versions/Current/Commands/手动安装的 Mono 6.12.0 版本(并卸载brew安装的版本) - 在 VSCode 中取消设置
omnisharp设置(它会导致关于 .NET SDK 的不同错误) - 删除 Unity 的
.csproj和.sln文件以便重新生成它们 - 手动告诉 Unity 重新生成所有
.csproj文件 - 正在重新启动
- 查看有关该主题的许多论坛帖子和 Stack Overflow 问题以寻求解决方案
那么对于让 IntelliSense 在 VSCode 中工作有什么建议吗?调试为什么 OmniSharp 找不到 Mono 的任何提示?我觉得我已经尽我所能将 OmniSharp 指向正确的位置,我希望它能记录更多关于它正在尝试的内容。
【问题讨论】:
标签: c# unity3d visual-studio-code mono omnisharp