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

Ubuntu 22无法找到.NET Core,执行dotnet命令报错求助

解决Ubuntu 22上.NET Core运行时检测异常与构建失败问题

1. 修正dotnet路径与DOTNET_ROOT不一致的问题

路径不匹配会导致CLI加载运行时/SDK时出现混淆,先处理这个核心矛盾:

  • 检查现有/usr/bin/dotnet是否为正确软链接:
    ls -l /usr/bin/dotnet
    
  • 如果不是指向/usr/lib/dotnet/dotnet的软链接,重新创建:
    sudo rm /usr/bin/dotnet
    sudo ln -s /usr/lib/dotnet/dotnet /usr/bin/dotnet
    
  • 刷新环境变量并持久化配置(避免重启后失效):
    export DOTNET_ROOT=/usr/lib/dotnet
    export PATH=$DOTNET_ROOT:$PATH
    
    将上述两行添加到~/.bashrc或~/.zshrc文件末尾,执行source ~/.bashrc生效。

2. 修复运行时未被检测的异常

dotnet --info显示SDK存在但无运行时,大概率是运行时注册异常或版本不匹配:

  • 手动安装项目依赖的.NET 6运行时,同时补全7.0运行时以匹配已安装的SDK:
    sudo apt update
    sudo apt install dotnet-runtime-6.0 dotnet-runtime-7.0
    
  • 安装完成后重新运行dotnet --info,确认运行时条目已正常显示。

3. 确保.NET 6项目构建正常

你的项目基于.NET 6,结合DOTNET_ROLL_FORWARD配置,做以下验证:

  • 进入项目目录,明确指定.NET 6框架构建:
    dotnet build --framework net6.0
    
  • 检查项目.csproj文件,确认TargetFramework未被误修改:
    <PropertyGroup>
      <TargetFramework>net6.0</TargetFramework>
    </PropertyGroup>
    
  • 如果launch.json的配置未生效,直接在构建时指定环境变量:
    DOTNET_ROLL_FORWARD=Latest dotnet build
    

4. 极端情况:修复损坏的.NET安装

若以上步骤无效,可能是安装文件损坏,执行完整重装:

  • 彻底卸载现有.NET相关包:
    sudo apt remove --purge dotnet* aspnetcore*
    sudo apt autoremove --purge
    sudo rm -rf /usr/lib/dotnet /etc/dotnet
    
  • 重新安装.NET 6 SDK:
    sudo apt update
    sudo apt install dotnet-sdk-6.0
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 08:27:04