如何修复dotnet ef工具提示“.NET位置未找到”的问题
解决.NET 7环境下dotnet-ef工具无法运行的问题
问题背景
用Entity Framework Core创建了.NET 7项目,之前装的是.NET 6,全局ef工具为6版本。升级到7版本时提示未安装框架,卸载重装.NET SDK 7和全局ef工具后,依旧无法使用ef工具,出现新错误。
当前环境信息
执行dotnet --info输出如下:
.NET SDK: Version: 7.0.101 Commit: bb24aafa11 Runtime Environment: OS Name: ubuntu OS Version: 22.04 OS Platform: Linux RID: ubuntu.22.04-x64 Base Path: /usr/share/dotnet/sdk/7.0.101/ Host: Version: 7.0.1 Architecture: x64 Commit: 97203d38ba .NET SDKs installed: 7.0.101 [/usr/share/dotnet/sdk] .NET runtimes installed: Microsoft.AspNetCore.App 7.0.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 7.0.1 [/usr/share/dotnet/shared/Microsoft.NETCore.App] Other architectures found: None Environment variables: DOTNET_ROOT [/usr/lib/dotnet] global.json file: Not found Learn more: https://aka.ms/dotnet/info Download .NET: https://aka.ms/dotnet/download
错误信息
运行dotnet ef时出现以下错误:
必须安装.NET才能运行此应用。 应用程序: /home/apriza/.dotnet/tools/dotnet-ef 架构: x64 应用宿主版本: 7.0.1 .NET 位置: 未找到 了解运行时安装: https://aka.ms/dotnet/app-launch-failed 下载.NET运行时: https://aka.ms/dotnet-core-applaunch?missing_runtime=true&arch=x64&rid=ubuntu.22.04-x64&apphost_version=7.0.1
解决方案
检查环境变量配置
当前DOTNET_ROOT设置为/usr/lib/dotnet,但SDK实际路径是/usr/share/dotnet/sdk/7.0.101/,需确认环境变量是否正确:- 执行
echo $PATH,确认/usr/share/dotnet已加入系统PATH - 若
DOTNET_ROOT指向错误路径,执行以下命令修正:export DOTNET_ROOT=/usr/share/dotnet export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools - 如需永久生效,将上述命令添加到
~/.bashrc或~/.zshrc文件中,执行source ~/.bashrc(对应shell配置文件)生效
- 执行
重新安装全局ef工具
先卸载旧版本工具:dotnet tool uninstall --global dotnet-ef然后指定.NET 7版本重新安装:
dotnet tool install --global dotnet-ef --version 7.0.1验证工具安装
执行以下命令确认工具是否正常:dotnet ef --version若输出7.0.1版本信息,则表示安装成功。
内容的提问来源于stack exchange,提问作者Apriza Prasetio
相关产品推荐
相关产品推荐

