如何通过global.json为子目录设置指定.NET SDK版本?
解决/d/Code目录下.NET SDK版本异常的问题
原因分析及解决步骤
1. 在/d/Code目录创建本地global.json
global.json的生效逻辑是从当前目录向上遍历,优先使用最近的配置文件。即使用户根目录有全局配置,直接在目标目录创建本地配置会覆盖上级设置:
cd /d/Code echo '{ "sdk": { "version": "5.0.405" } }' > global.json
执行后运行dotnet --version验证版本是否切换成功。
2. 清理.NET 7.0.200残留文件
虽已卸载.NET 7.0.200,但可能存在未清理的SDK文件,导致dotnet仍能检测到该版本:
- 先运行
dotnet --list-sdks查看已安装SDK列表,若7.0.200仍在列表中:- Linux/macOS:手动删除对应目录,通常路径为
/usr/share/dotnet/sdk/7.0.200或~/.dotnet/sdk/7.0.200 - Windows:删除
C:\Program Files\dotnet\sdk\7.0.200目录
- Linux/macOS:手动删除对应目录,通常路径为
- 删除后重新运行
dotnet --version检查。
3. 排查隐藏的global.json文件
可能/d/Code目录下存在未被发现的隐藏global.json文件,执行命令查看:
ls -la /d/Code
若找到隐藏的global.json,修改其sdk.version为5.0.405,或直接删除该文件。
4. 检查环境变量配置
确认环境变量中无指向.NET 7.0.200的路径:
- 运行
echo $PATH查看路径列表,确保未包含旧版本dotnet的目录 - 检查
DOTNET_ROOT环境变量,确保其指向.NET 5的安装目录
内容的提问来源于stack exchange,提问作者will-hedges
相关产品推荐
相关产品推荐

