You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Neovim中配置Omnisharp适配.NET Core 5.0.17的问题求助

解决Neovim中Omnisharp适配.NET 5.0.17的版本兼容问题

核心问题定位

你遇到的Client 1 quit with exit code 150错误,本质是Omnisharp默认启用的现代.NET模式(依赖.NET 6+)与本地.NET 5.0.17环境不兼容。即使设置了useModernNet = false,也可能因配置未生效、Omnisharp版本不匹配或Mono环境未正确关联导致问题持续。

针对性排查与修复步骤

1. 确认useModernNet = false配置是否真正生效

检查lsp-installer.lua是否正确引入omnisharp配置文件,确保配置传递给客户端:

-- 示例正确引入方式(根据你的目录结构调整)
require("lspconfig").omnisharp.setup({
  settings = require("lsp.settings.omnisharp"),
  -- 其他配置项...
})

同时确认omnisharp.lua内容无误:

return {
  useModernNet = false,
  -- 自动检测失败时可手动指定Mono路径
  monoPath = "/usr/bin/mono" -- 对应Manjaro默认安装路径
}

2. 检查Omnisharp版本兼容性

部分新版Omnisharp默认强制依赖现代.NET,可手动安装支持Mono模式的旧版本(如v1.39.8及之前版本),并在配置中指定路径:

require("lspconfig").omnisharp.setup({
  cmd = { "/path/to/omnisharp/run", "--languageserver", "--hostPID", tostring(vim.fn.getpid()) },
  settings = {
    useModernNet = false
  }
})

3. 验证Mono与msbuild环境完整性

在终端执行以下命令,确认环境正常:

mono --version
msbuild --version

若msbuild无法调用,需确保mono-msbuild路径加入系统环境变量,或在配置中手动指定:

settings = {
  useModernNet = false,
  msbuildPath = "/usr/bin/msbuild" -- 对应Manjaro默认路径
}

4. 分析Omnisharp启动日志

在Neovim中执行:LspLog,重点查看Omnisharp启动段日志,确认:

  • 是否输出Using Mono runtime(验证Mono模式已启用)
  • 是否存在msbuild加载失败、路径错误的提示
  • 是否仍在尝试加载.NET 6相关组件

额外注意事项

  • Manjaro中Mono默认路径为/usr/bin/mono,msbuild默认路径为/usr/bin/msbuild,若自定义安装需调整对应路径
  • 确保终端执行dotnet --version能正常返回5.0.17,验证.NET 5环境配置无误

内容的提问来源于stack exchange,提问作者MrRobot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 10:57:33