在Linux中找不到与命令“ dotnet-ef”匹配的可执行文件

时间:2018-10-27 21:02:15

标签: linux entity-framework asp.net-core .net-core

当我尝试在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

1 个答案:

答案 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.10x和2.1.20x仅与.NET Core 2.0一起提供
  • .NET Core 2.1附带了.NET Core SDK 2.1.30x和2.1.40x。

只有.NET Core SDK> = 2.1.300才全局安装了工具。

对于早于该版本的.NET Core SDK,您需要将<DotNetCliToolReference>添加到项目的csproj中以使其可用。

即使您的项目面向.NET Core 2.0,但您已安装2.1运行时,全局安装的工具也将起作用。