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

Ubuntu 22.04下ASP.NET Core Runtime无法识别已安装SDK

.NET 7.0 SDK 无法识别问题(Ubuntu 22.04)

问题现象

从微软官网安装.NET 7.0 Runtime和SDK后,Runtime运行正常,但执行dotnet --list-sdks无任何输出;执行dotnet --info显示无SDK安装,具体输出如下:

Host:
  Version:      7.0.5
  Architecture: x64
  Commit:       (some hex value)

.NET SDKs installed:
  No SDKs were found.

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.16 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 7.0.5 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.16 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.5 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  DOTNET_ROOT       [/usr/share/dotnet]

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

使用sudo权限执行命令,结果依旧。

路径信息

  • SDK路径:/usr/share/dotnet,目录内容:
    -sdk 
    -sdk-manifests
    -templates
    
  • Runtime路径:/usr/lib/dotnet,目录内容:
    -host 
    -packs 
    -shared 
    
    -dotnet  -executable-
    -LICENSE.txt
    -ThirdPartyNotices.txt
    

安装步骤

  1. 添加微软源:
    # 获取Ubuntu版本
    declare repo_version=$(if command -v lsb_release &> /dev/null; then lsb_release -r -s; else grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"'; fi)
    
    # 下载微软签名密钥和仓库文件
    wget https://packages.microsoft.com/config/ubuntu/$repo_version/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    
    # 安装签名密钥和仓库
    sudo dpkg -i packages-microsoft-prod.deb
    
    # 清理文件
    rm packages-microsoft-prod.deb
    
    # 更新包列表
    sudo apt update
    
  2. 安装SDK:
    apt install dotnet-sdk-7.0.
    

注:未手动安装7.0 Runtime,它是通过上述SDK安装命令自动附带安装的。

已尝试的无效解决方法

  • 修改DOTNET_ROOT和PATH环境变量指向SDK路径/usr/share/dotnet
  • 安装6.0版本SDK,仍无法识别
  • 重装Runtime和SDK

解决方案

  1. 修复不完整的SDK安装
    原安装命令apt install dotnet-sdk-7.0.末尾多了一个点,可能导致安装不完整。执行重新安装命令:

    sudo apt install --reinstall dotnet-sdk-7.0
    
  2. 修复路径关联问题
    Ubuntu上.NET的默认主目录是/usr/lib/dotnet,但你的SDK文件在/usr/share/dotnet,可通过软链接关联:

    sudo ln -s /usr/share/dotnet/sdk /usr/lib/dotnet/sdk
    sudo ln -s /usr/share/dotnet/sdk-manifests /usr/lib/dotnet/sdk-manifests
    sudo ln -s /usr/share/dotnet/templates /usr/lib/dotnet/templates
    

    执行后重新运行dotnet --list-sdks验证。

  3. 重置环境变量
    确保DOTNET_ROOT指向正确的.NET主目录,执行临时生效命令:

    export DOTNET_ROOT=/usr/lib/dotnet
    export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
    

    若要永久生效,将上述两行添加到~/.bashrc(或~/.zshrc,根据你使用的shell)文件末尾,再执行source ~/.bashrc刷新配置。

  4. 修复文件权限
    检查SDK目录的权限,确保当前用户有读取访问权:

    sudo chmod -R 755 /usr/share/dotnet/sdk
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:27:42