如何配置.NET多版本路径以解决CLI运行.NET6应用报错问题?
macOS下多版本.NET配置方案
背景情况
- 通过
brew安装了.NET 6(命令brew install dotnet@6)和.NET 7(命令brew install dotnet) - 当前应用依赖
.NET 6 Core环境,暂时无法升级到.NET 7 - 已安装版本路径:
- .NET 7:
/opt/homebrew/Cellar/dotnet/7.0.100 - .NET 6:
/opt/homebrew/Cellar/dotnet@6/6.0.114 - 已安装版本列表:

- .NET 7:
- 运行
dotnet --info显示Base Path指向.NET 7路径,使用CLI运行应用时,因找不到.NET 6依赖'Microsoft.NETCore.App', version '6.0.0' (arm64)报错;后续从官网安装.NET 6.0 SDK v6.0.411后,dotnet --info仍未识别到该版本
配置方法(让CLI识别两个.NET版本)
- 链接brew安装的.NET 6
brew安装的dotnet@6默认处于未链接状态,需手动执行命令将其加入系统路径:
brew link dotnet@6 --force --overwrite
- 指定版本优先级
- 全局默认版本:如果需要默认使用.NET 6,可执行:
dotnet global tool install --global dotnet-sdk-tool dotnet sdk default 6.0.114 - 项目级别指定:在项目根目录创建
global.json文件,强制项目使用.NET 6:{ "sdk": { "version": "6.0.114" } }
- 修复官网SDK的识别问题
官网安装的.NET SDK默认路径为/usr/local/share/dotnet,需确保该路径在系统PATH中优先级高于brew路径。在~/.zshrc或~/.bash_profile中添加:
export PATH="/usr/local/share/dotnet:$PATH"
执行source ~/.zshrc(对应你的shell配置文件)使变更生效。
问题解答
- 按照上述步骤完成brew链接、环境变量配置,或通过
global.json指定版本,即可让CLI识别两个.NET版本。 - 配置成功后,运行
dotnet --info会同时显示已安装的所有.NET SDK版本,包括.NET 6和.NET 7。
内容的提问来源于stack exchange,提问作者GThree
相关产品推荐
相关产品推荐

