我正在按照文档创建初始迁移。当我执行dotnet时,我得到了帮助部分,这意味着PATH正常工作。

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

dotnet ef迁移添加InitialCreate

我得到以下错误:

无法执行,因为没有找到指定的命令或文件。 可能的原因包括:

内置dotnet命令拼写错误。 您打算执行。net Core程序,但dotnet-ef不存在。 您打算运行一个全局工具,但是在PATH上找不到带有此名称的dotnet前缀的可执行文件。 由于复制了命令,所以排除了第一项。 我排除了第二项,因为安装了包Microsoft.EntityFrameworkCore.SqlServer。 我排除了第三项,因为在调用dotnet时会得到帮助部分。

我在谷歌上搜索这个问题,但因为这个版本是新的,所以没有太多可以继续的东西,而且/或者它淹没在早期版本的类似问题中。

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

检测到包降级:Microsoft。EntityFrameworkCore从3.0.0-preview6.19304.10到2.2.6。直接从项目中引用包以选择不同的版本。 Web - > Microsoft.EntityFrameworkCore.SqlServer 3.0.0-preview6.19304.10 -> Microsoft.EntityFrameworkCore.Relational 3.0.0-preview6.19304.10 -> 微软。EntityFrameworkCore (>= 3.0.0-preview6.19304.10) 微软。EntityFrameworkCore (>= 2.2.6)


当前回答

我在Ubuntu上使用Ansible和sudo升级特权安装dotnet-ef工具后遇到了这个问题。我必须为Playbook任务添加be: no,然后当前用户就可以使用dotnet-ef工具了。

  - name: install dotnet tool dotnet-ef
    command: dotnet tool install --global dotnet-ef --version {{dotnetef_version}}
    become: no

其他回答

这将为我工作在Visual studio代码,在Ubuntu

dotnet tool install --global dotnet-ef
dotnet tool restore

之后所有的执行都完成了

dotnet tool run dotnet-ef

or

dotnet dotnet-ef

全局工具可以安装在默认目录下,也可以安装在 具体的位置。默认目录为: Linux/macOS: > $HOME/.dotnet/tools Windows: > %USERPROFILE%\.dotnet\tools 如果您试图运行全局工具,请检查机器上的PATH环境变量是否包含安装全局工具的路径,并且可执行文件是否在该路径中。

解决.NET核心工具使用问题

我通过以下命令在本地安装dotnet-f工具解决了这个问题。

如果您正在设置此存储库

dotnet new tool-manifest

dotnet tool install --local dotnet-ef --version 5.0.6

然后使用dotnet dotnet-ef代替dotnet-ef。

如果你问自己可用的版本是什么:

本页“版本”页签:https://www.nuget.org/packages/dotnet-ef/

除此之外,正如其他人已经提到的:

dotnet tool install --global dotnet-ef --version 5.0.11

以管理员身份运行PowerShell或命令提示符,并运行以下命令。

dotnet tool install --global dotnet-ef --version 3.1.3