Ubuntu/PopOS 22.04下.NET SDK已安装却无法识别的问题求助
解决.NET SDK已安装但无法识别的问题
问题现象
此前.NET SDK可正常使用,更新系统与VSCode后,执行dotnet watch run命令时出现报错:
* You intended to execute a .NET application: The application 'watch' does not exist. * You intended to execute a .NET SDK command: No .NET SDKs were found. Download a .NET SDK: https://aka.ms/dotnet-download Learn about SDK resolution: https://aka.ms/dotnet/sdk-not-found
已尝试操作
- 执行
sudo apt install dotnet-sdk-6.0,系统提示已安装最新版本:
sudo apt install dotnet-sdk-6.0 [sudo] password for robinson: Reading package lists... Done Building dependency tree... Done Reading state information... Done dotnet-sdk-6.0 is already the newest version (6.0.400-1). 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
- 执行
dotnet --info,结果显示未找到已安装的SDK:
global.json file: Not found Host: Version: 6.0.8 Architecture: x64 Commit: 55fb7ef977 .NET SDKs installed: No SDKs were found. .NET runtimes installed: Microsoft.AspNetCore.App 6.0.8 [/usr/lib/dotnet/dotnet6-6.0.108/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 6.0.8 [/usr/lib/dotnet/dotnet6-6.0.108/shared/Microsoft.NETCore.App]
- 检查路径信息:
which dotnet结果:/usr/bin/dotnetecho $PATH结果:
/home/robinson/.nvm/versions/node/v18.7.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/robinson/.dotnet/tools
系统环境
- 系统:PopOS(x64架构)
- 用户:Linux新手
解决方案
1. 确认SDK实际安装路径
先验证SDK是否真的在系统中存在,执行以下命令查看SDK目录:
ls /usr/lib/dotnet/sdk/
如果输出包含6.0.400目录,说明SDK已安装,问题出在路径识别上。
2. 临时配置DOTNET_ROOT环境变量
dotnet需要明确SDK的根目录路径,执行以下命令临时设置:
export DOTNET_ROOT=/usr/lib/dotnet
设置完成后再次执行dotnet --info,如果能看到已安装的SDK,说明配置生效。
3. 永久配置环境变量
为了让配置在每次登录时自动生效,需要修改用户配置文件:
- 打开bash配置文件(如果使用zsh则替换为
~/.zshrc):
nano ~/.bashrc
- 在文件末尾添加以下内容:
export DOTNET_ROOT=/usr/lib/dotnet export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
- 保存退出后,执行以下命令使配置立即生效:
source ~/.bashrc
4. 修复dotnet符号链接(可选)
如果/usr/bin/dotnet是错误的符号链接,重新创建正确链接:
sudo rm /usr/bin/dotnet sudo ln -s /usr/lib/dotnet/dotnet /usr/bin/dotnet
重启终端后再次执行dotnet --info检查。
5. 重新注册.NET SDK
执行以下命令重新注册SDK并恢复工具:
sudo /usr/lib/dotnet/dotnet --list-sdks sudo /usr/lib/dotnet/dotnet tool restore
内容的提问来源于stack exchange,提问作者Robinson
相关产品推荐
相关产品推荐

