无法启动 OmniSharp,因为需要 Mono 版本 >=6.4.0
Cannot start OmniSharp because Mono version >=6.4.0 is required
我使用VSCode进行Unity开发。不幸的是,我的 C# 代码在 VSCode 内没有得到任何 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 莫哈韦沙漠 10.14.6
- Unity 2020.2.0f1 + Visual Studio Unity 代码编辑器 1.2.3 包
- VSCode 1.54.1 + VSCode
的 C# 1.23.0 插件
- Mono 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 SDK
Version: 3.1.201
在我的 VSCode 设置中,我设置了以下内容:
"omnisharp.loggingLevel": "debug",
"omnisharp.monoPath": "/usr/local/bin/mono",
"omnisharp.useGlobalMono": "always"
我尝试过的事情:
- Downgrading/upgrading VSCode的C#插件(包括到最新版本1.23.9)
- 正在降级 Unity 的 Visual Studio 代码编辑器包
- 切换 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 指向正确的位置,我希望它记录更多关于它正在尝试的内容。
将 "omnisharp.useGlobalMono"
设置为 "never"
,并确保在工作区的根目录中有一个项目的 .NET .sln
文件。如果解决方案不在您工作区的根目录中,请按 Ctrl+Shift+P,然后 运行“OmniSharp:Select 项目”到 select 您的 .sln
文件。
我能够通过在 https://code.visualstudio.com/updates/v1_52 将 Visual Studio Code 降级到 1.52.1 并关闭 VS Code 中的自动更新来解决问题。 OmniSharp 现在可以毫无例外地工作。似乎根本原因在于 VS Code 1.54(或可能是 1.53)
我遇到了同样的问题(没有 Intellisense)。尝试了这里和其他地方列出的许多东西。按照大多数地方的建议将“ominsharp.useGlobalMono”变为“从不”,并在出现提示时重新启动 omnisharp,但没有任何改变。然而,我得到了一个我以前没有得到的错误(没有保存它,但它是表明不支持旧版本的单声道(?)的消息)。
因此,我将其放回(“始终”)并在出现提示时重新启动 omnisharp ...并且自动完成工作。甚至没有退出 VS 代码。脚本仍然是开放的。不知道为什么它现在有效,但它确实有效。所以....设置为永不并返回到总是?
使用 VS Code v 1.55.2。
使用网络 5.0.202
我使用VSCode进行Unity开发。不幸的是,我的 C# 代码在 VSCode 内没有得到任何 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 莫哈韦沙漠 10.14.6
- Unity 2020.2.0f1 + Visual Studio Unity 代码编辑器 1.2.3 包
- VSCode 1.54.1 + VSCode 的 C# 1.23.0 插件
- Mono 6.12.0.122 通过
brew
安装在 - 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 SDK
Version: 3.1.201
/usr/local/bin/mono
在我的 VSCode 设置中,我设置了以下内容:
"omnisharp.loggingLevel": "debug",
"omnisharp.monoPath": "/usr/local/bin/mono",
"omnisharp.useGlobalMono": "always"
我尝试过的事情:
- Downgrading/upgrading VSCode的C#插件(包括到最新版本1.23.9)
- 正在降级 Unity 的 Visual Studio 代码编辑器包
- 切换 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 指向正确的位置,我希望它记录更多关于它正在尝试的内容。
将 "omnisharp.useGlobalMono"
设置为 "never"
,并确保在工作区的根目录中有一个项目的 .NET .sln
文件。如果解决方案不在您工作区的根目录中,请按 Ctrl+Shift+P,然后 运行“OmniSharp:Select 项目”到 select 您的 .sln
文件。
我能够通过在 https://code.visualstudio.com/updates/v1_52 将 Visual Studio Code 降级到 1.52.1 并关闭 VS Code 中的自动更新来解决问题。 OmniSharp 现在可以毫无例外地工作。似乎根本原因在于 VS Code 1.54(或可能是 1.53)
我遇到了同样的问题(没有 Intellisense)。尝试了这里和其他地方列出的许多东西。按照大多数地方的建议将“ominsharp.useGlobalMono”变为“从不”,并在出现提示时重新启动 omnisharp,但没有任何改变。然而,我得到了一个我以前没有得到的错误(没有保存它,但它是表明不支持旧版本的单声道(?)的消息)。
因此,我将其放回(“始终”)并在出现提示时重新启动 omnisharp ...并且自动完成工作。甚至没有退出 VS 代码。脚本仍然是开放的。不知道为什么它现在有效,但它确实有效。所以....设置为永不并返回到总是? 使用 VS Code v 1.55.2。 使用网络 5.0.202