Skip to main content
 首页 » 编程设计

c#之未找到命令 dotnet ef

2024年05月22日11lautakyan007

我正在关注the docs为了创建初始迁移。当我执行 dotnet 时,我得到帮助部分,这意味着 PATH 工作正常。

然后我尝试从控制台窗口中的文档执行以下命令:

dotnet ef migrations add InitialCreate

我收到以下错误:

Could not execute because the specified command or file was not found.
Possible reasons for this include:

  • 您拼错了内置 dotnet 命令。

  • 您打算执行 .NET Core 程序,但 dotnet-ef 不存在。

  • 您打算运行全局工具,但在 PATH 上找不到具有此名称的以 dotnet 为前缀的可执行文件。

  • 自从复制命令以来,我排除了第一项。

  • 我排除了第二项,因为已安装包 Microsoft.EntityFrameworkCore.SqlServer

  • 我排除了第三项,因为我在调用 dotnet 时获得了帮助部分。

我正在谷歌上搜索这个问题,但由于版本是新的,所以没有太多可继续的内容和/或它淹没在早期版本的类似问题中。

我尝试强制安装Microsoft.EntityFrameworkCore,以防需要显式添加它。我遇到了错误消息,告诉我可以选择的最新版本是 2.2.6,并且不能降级。我不确定如何安装与我的系统上已有的 SQL 包兼容的版本(更不确定这是否是解决此问题的正确方法)。

Detected package downgrade: Microsoft.EntityFrameworkCore from 3.0.0-preview6.19304.10 to 2.2.6. Reference the package directly from the project to select a different version.
Web ->
Microsoft.EntityFrameworkCore.SqlServer 3.0.0-preview6.19304.10 ->
Microsoft.EntityFrameworkCore.Relational 3.0.0-preview6.19304.10 ->
Microsoft.EntityFrameworkCore (>= 3.0.0-preview6.19304.10)
Web -> Microsoft.EntityFrameworkCore (>= 2.2.6)

请您参考如下方法:

要安装 dotnet-ef 工具,请运行以下命令:

.NET 7

dotnet tool install --global dotnet-ef 

.NET 6

dotnet tool install --global dotnet-ef --version 6.* 

.NET 5

dotnet tool install --global dotnet-ef --version 5.* 

.NET Core 3

dotnet tool install --global dotnet-ef --version 3.* 
<小时 />

有关 dotnet-ef 历史的更多信息,请参阅 announcement对于 ASP.NET Core 3 Preview 4,它解释了该工具已从内置更改为需要显式安装:

The dotnet ef tool is no longer part of the .NET Core SDK

This change allows us to ship dotnet ef as a regular .NET CLI tool that can be installed as either a global or local tool.