MacOS下VSCode多窗口打开C#项目提示未安装.NET SDK问题咨询
解决VSCode多窗口打开不同.NET SDK版本项目的SDK找不到问题
完全可以在不同VSCode窗口同时打开并编译这两个项目,问题根源是OmniSharp扩展的SDK版本检测逻辑导致的多窗口冲突,以下是具体解决方案:
为每个项目单独指定SDK版本
在每个项目的根目录创建global.json文件,明确该项目依赖的.NET SDK版本,示例内容:{ "sdk": { "version": "6.0.417" // 替换为项目实际需要的SDK版本 } }OmniSharp会优先读取项目本地的
global.json配置,避免不同窗口间的SDK版本干扰。调整VSCode C#扩展配置
打开VSCode设置(快捷键Ctrl+,),完成两项配置:- 搜索
OmniSharp: Use Global Mono,设置为never,强制使用项目指定的SDK环境; - 搜索
OmniSharp: Path,保持默认的null让扩展自动检测,或手动指定对应版本的OmniSharp路径。
- 搜索
重启OmniSharp服务
若切换窗口后仍报错,打开命令面板(Ctrl+Shift+P),执行OmniSharp: Restart OmniSharp命令,让扩展重新加载当前项目的SDK配置。验证SDK安装与环境变量
打开终端执行dotnet --list-sdks,确认两个项目依赖的SDK版本都已安装;同时检查系统PATH环境变量,确保包含所有已安装SDK的dotnet可执行文件路径,避免环境变量读取异常。
这类问题通常是因为两个项目依赖不同版本的.NET SDK,第一个窗口加载后OmniSharp缓存了全局SDK信息,导致第二个窗口无法正确识别对应版本。通过本地global.json配置隔离版本后,即可实现多窗口独立编译不同项目。
内容的提问来源于stack exchange,提问作者Zebedee
相关产品推荐
相关产品推荐

