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

Ubuntu 22.04下dotnet run正常,直接运行二进制提示需安装.NET

问题解决:Ubuntu 22.04下直接运行.NET控制台程序提示需安装.NET

问题背景

Ubuntu 22.04系统,已从微软仓库安装.NET 7 SDK。使用dotnet new console创建项目后,dotnet run可正常输出,但进入输出目录执行./dottest时,提示必须安装.NET。

问题根源

环境变量DOTNET_ROOT被错误设置为/usr/lib/dotnet,但实际.NET的安装路径是/usr/share/dotnet。直接运行生成的可执行文件时,程序会通过DOTNET_ROOT查找.NET运行时,路径不匹配导致报错;而dotnet run由SDK直接调度,不受这个错误变量影响。

解决方案

1. 临时运行(仅当前终端有效)

在运行程序前临时指定正确的DOTNET_ROOT:

DOTNET_ROOT=/usr/share/dotnet ./dottest

2. 永久修复环境变量

需要找到DOTNET_ROOT的定义位置并修正,常见的配置文件包括:

  • 用户目录下的.bashrc、.bash_profile(Bash环境)或.zshrc(Zsh环境)
  • 系统级配置文件/etc/profile、/etc/environment
  • /etc/profile.d/目录下的dotnet相关脚本文件

找到包含DOTNET_ROOT=/usr/lib/dotnet的行,将其修改为:

DOTNET_ROOT=/usr/share/dotnet

修改完成后,重启终端或执行以下命令让配置生效(以.bashrc为例):

source ~/.bashrc

3. 验证修复

执行以下命令确认环境变量已修正:

echo $DOTNET_ROOT

输出应为/usr/share/dotnet,之后再次运行./dottest即可正常执行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:30:54