Ubuntu 20.04中无法使用指定版本.NET运行程序的问题
解决Ubuntu 20.04上.NET程序运行缺少6.0.0 Runtime的问题
1. 纠正错误的安装命令
你之前执行的./dotnet-install.sh --channel 9.0是安装.NET 9.0预览版,和你需要的6.0版本无关。正确安装.NET 6.0 Runtime(仅运行程序用)的命令为:
./dotnet-install.sh --channel 6.0 --runtime dotnet
如果需要同时安装6.0 SDK(用于编译6.0项目),则去掉--runtime dotnet:
./dotnet-install.sh --channel 6.0
2. 让系统识别脚本安装的.NET
脚本默认将.NET安装到$HOME/.dotnet目录,需将该路径加入系统环境变量:
- 编辑
~/.bashrc或~/.zshrc(根据你使用的Shell),添加以下内容:export DOTNET_ROOT=$HOME/.dotnet export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools - 执行
source ~/.bashrc(对应Shell的配置文件)使配置立即生效。
3. 验证.NET 6.0安装状态
执行以下命令,确认输出中包含Microsoft.NETCore.App 6.0.x版本:
dotnet --list-runtimes dotnet --list-sdks
4. 运行程序的两种方案
方案一:直接指定6.0 Runtime运行
用脚本安装的6.0 dotnet命令直接启动程序:
$HOME/.dotnet/dotnet SendTextMessage
方案二:给项目指定SDK版本(适用于自己开发的项目)
如果SendTextMessage是你自己开发的项目,在项目根目录创建global.json文件,指定使用6.0 SDK编译:
{ "sdk": { "version": "6.0.408" } }
重新编译项目后,生成的程序将适配已安装的6.0 Runtime。
5. 解决Snap版.NET的冲突(可选)
如果Snap安装的.NET干扰全局环境,可卸载Snap版:
sudo snap remove dotnet-sdk
确保脚本安装的.NET路径在PATH中,系统会默认使用多版本的.NET环境。
内容的提问来源于stack exchange,提问作者dylatwork
相关产品推荐
相关产品推荐

