Ubuntu下VS Code无法识别/使用.NET 3.1或Mono的解决方法求助
解决VS Code无法识别.NET 3.1/Mono运行选项的问题
1. 降级C#扩展至兼容版本
VS Code新版C#扩展(OmniSharp)已停止对.NET Core 3.1的支持,需降级到兼容版本:
- 打开VS Code左侧扩展面板,找到**C#**扩展
- 点击扩展卡片右上角齿轮图标,选择「Install Another Version」
- 选择
1.25.x及更早版本(该版本范围仍支持.NET Core 3.1),安装后重启VS Code
2. 配置OmniSharp指向系统.NET 3.1路径
强制VS Code使用已安装的.NET 3.1:
- 打开VS Code设置(快捷键
Ctrl+,) - 搜索
OmniSharp: Dotnet Path,设置值为/usr/bin/dotnet - 搜索
OmniSharp: Use Global Mono,设置为always确保Mono被优先识别
3. 手动配置项目运行/构建文件
若项目未自动识别运行时,手动指定框架版本:
修改launch.json
在.vscode/launch.json的配置项中添加运行时指定字段:
{ "version": "0.2.0", "configurations": [ { "name": ".NET Core Launch (console)", "type": "coreclr", "request": "launch", "preLaunchTask": "build", "program": "${workspaceFolder}/bin/Debug/netcoreapp3.1/YourProject.dll", "args": [], "cwd": "${workspaceFolder}", "runtimeVersion": "3.1", "console": "internalConsole", "stopAtEntry": false } ] }
修改tasks.json
在.vscode/tasks.json的build任务中明确框架参数:
{ "version": "2.0.0", "tasks": [ { "label": "build", "command": "dotnet", "type": "process", "args": [ "build", "${workspaceFolder}/YourProject.csproj", "/property:GenerateFullPaths=true", "/consoleloggerparameters:NoSummary", "--framework", "netcoreapp3.1" ], "problemMatcher": "$msCompile" } ] }
4. 确认Mono路径配置
确保VS Code能定位到Mono:
- 执行命令
which mono获取路径(通常为/usr/bin/mono) - 在VS Code设置中搜索
OmniSharp: Mono Path,设置为该路径 - 重启VS Code后重新加载窗口
5. 最终验证
- 执行
dotnet --list-sdks,确认输出包含3.1.424 - 重启VS Code并重新加载窗口(快捷键
Ctrl+Shift+P,选择「Reload Window」) - 打开项目后查看右上角运行选择框,确认.NET 3.1或Mono选项已出现
内容的提问来源于stack exchange,提问作者dman
相关产品推荐
相关产品推荐

