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

Ubuntu 20.04安装.NET SDK 5.0成功后dotnet --list-sdks仅显示3.1版本怎么办

问题原因
  • 你当前默认调用的dotnet程序是snap安装的版本,snap软件是沙箱隔离运行的,默认只能读取自身沙箱路径/snap/dotnet-sdk/下的文件,你后续手动安装的.NET 5.0 SDK默认存放路径为/usr/share/dotnet/(全局安装)或~/.dotnet/(当前用户安装),在snap沙箱外,因此无法被识别。
  • 若你未手动配置环境变量,系统PATH中snap的dotnet路径优先级更高,会优先调用snap版dotnet,也会导致新安装的SDK无法被扫描到。
多版本.NET SDK正确安装方法

推荐优先用微软官方APT源安装,版本管理更方便,不会出现路径冲突问题,操作步骤如下:

  • 第一步:卸载现有snap版.NET SDK,消除路径冲突
    sudo snap remove dotnet-sdk
  • 第二步:导入微软官方APT源
    执行以下命令添加GPG密钥和软件源:
    wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    sudo apt update
    
  • 第三步:安装所需的多个版本SDK
    直接通过apt安装对应版本即可,所有版本会自动存放到统一的dotnet工作目录,无需额外配置就能被识别:
    安装3.1版本SDK:sudo apt install dotnet-sdk-3.1
    安装5.0版本SDK:sudo apt install dotnet-sdk-5.0
    注意:.NET 5.0已经停止官方支持,建议优先使用长期支持版本如.NET 6.0或者.NET 8.0
    你也可以根据需求安装其他版本的SDK。
  • 第四步:验证安装
    执行dotnet --list-sdks,输出中会显示所有已安装的SDK版本和对应路径。

如果不想卸载snap版本,可以手动调整环境变量解决:

  • 编辑当前用户的shell配置文件(bash用户编辑~/.bashrc,zsh用户编辑~/.zshrc),在末尾添加以下内容:
    export DOTNET_ROOT=/usr/share/dotnet
    export PATH=$DOTNET_ROOT:$PATH
    
  • 保存退出后执行source ~/.bashrc(对应zsh执行source ~/.zshrc)使配置生效,再执行dotnet --list-sdks就能识别到所有版本。
补充说明

如果需要指定某个项目使用特定版本的SDK,可以在项目根目录下创建global.json文件,填入对应版本号即可,示例:

{
  "sdk": {
    "version": "5.0.408"
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:57:03