当我尝试在Linux cli中使用“ dotnet ef migrations add Initial”命令添加迁移时出现此错误No executable found matching command “dotnet-ef”
。我已经安装了dotnet sdk 2.1,可以构建和运行项目。
系统为Debian Linux 9 64位 在Windows env(win 10)中,在相同设置下一切正常。
该如何解决?
更新:
dotnet --info
给出输出:
.NET Command Line Tools (2.1.105)
Product Information:
Version: 2.1.105
Commit SHA-1 hash: 141cc8d976
Runtime Environment:
OS Name: debian
OS Version: 9
OS Platform: Linux
RID: debian.9-x64
Base Path: /usr/share/dotnet/sdk/2.1.105/
Host (useful for support):
Version: 2.1.5
Commit: 290303f510
.NET Core SDKs installed:
2.1.105 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.0.7 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.5 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
答案 0 :(得分:1)
如评论中所指出:
2.1 SDK并不意味着您正在使用.NET Core 2.1运行时。 .NET Core SDK版本与/未与.NET Core运行时同步(将从.NET Core SDK 2.2开始,这将更改并再次同步)
现成的EF Core工具仅在.NET Core 2.1而非2.0中引入。
只有.NET Core SDK> = 2.1.300才全局安装了工具。
对于早于该版本的.NET Core SDK,您需要将<DotNetCliToolReference>
添加到项目的csproj中以使其可用。
即使您的项目面向.NET Core 2.0,但您已安装2.1运行时,全局安装的工具也将起作用。