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

RHEL7系统已安装Dotnet 3.1.0 运行.NET程序提示找不到版本如何解决

RHEL 7多版本.NET运行时识别问题解决方法

问题原因

你通过RHEL官方SCL(软件集合)源安装了两个版本的.NET,默认系统仅将.NET 5.0的安装路径加入了环境变量,所以运行程序时只能识别到5.0版本的运行时,无法找到已安装的3.1版本。

解决方法

你可以根据自己的使用场景选择以下任意一种方案:

  • 方案1:临时在当前终端会话使用.NET 3.1
    该方案仅对当前打开的终端窗口生效,关闭窗口后自动恢复默认的.NET 5.0配置,适合临时调试使用:

    scl enable rh-dotnet31 bash
    

    激活后可执行dotnet --list-runtimes验证,输出中包含Microsoft.NETCore.App 3.1.0即为配置成功。

  • 方案2:指定单个应用使用.NET 3.1(不影响全局配置)
    该方案不会修改系统全局的默认.NET版本,仅针对指定应用生效,适合同时运行不同版本.NET程序的场景:
    第一种方式是在应用的启动脚本开头添加两行环境变量:

    export PATH=/opt/rh/rh-dotnet31/root/usr/bin:$PATH
    export DOTNET_ROOT=/opt/rh/rh-dotnet31/root/usr/lib64/dotnet
    

    第二种方式是启动时直接调用3.1版本的dotnet全路径,无需修改任何配置:

    /opt/rh/rh-dotnet31/root/usr/bin/dotnet 你的应用程序文件名.dll
    
  • 方案3:全局默认使用.NET 3.1
    该方案会修改系统级配置,所有用户运行dotnet命令时默认使用3.1版本:
    将以下两行配置添加到/etc/profile(全局对所有用户生效)或当前用户的~/.bashrc(仅对当前用户生效)文件末尾,保存后重新登录系统即可生效:

    export PATH=/opt/rh/rh-dotnet31/root/usr/bin:$PATH
    export DOTNET_ROOT=/opt/rh/rh-dotnet31/root/usr/lib64/dotnet
    

内容的提问来源于stack exchange,提问作者Mary Ellen Bench

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:57:01