Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在.NET Core 3中找不到命令dotnet ef_C#_Asp.net Core_.net Core_Entity Framework Core_.net Core 3.0 - Fatal编程技术网

C# 在.NET Core 3中找不到命令dotnet ef

C# 在.NET Core 3中找不到命令dotnet ef,c#,asp.net-core,.net-core,entity-framework-core,.net-core-3.0,C#,Asp.net Core,.net Core,Entity Framework Core,.net Core 3.0,为了创建一个初始迁移,我将进行以下操作。当我执行dotnet时,我会得到帮助部分,这意味着路径工作正常 然后,我尝试从“控制台中的文档”窗口执行以下命令: dotnet ef迁移添加初始创建 我得到以下错误: 无法执行,因为找不到指定的命令或文件。 可能的原因包括: 您拼错了一个内置的dotnet命令 您打算执行.NET核心程序,但dotnet ef不存在 您打算运行全局工具,但在路径上找不到带有此名称的dotnet前缀可执行文件 复制命令后,我排除了第一项 我排除了第二项,因为安装了

为了创建一个初始迁移,我将进行以下操作。当我执行
dotnet
时,我会得到帮助部分,这意味着路径工作正常

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

dotnet ef迁移添加初始创建

我得到以下错误:

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

  • 您拼错了一个内置的dotnet命令

  • 您打算执行.NET核心程序,但dotnet ef不存在

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

  • 复制命令后,我排除了第一项

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

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

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

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

检测到包降级:Microsoft.EntityFrameworkCore从3.0.0-preview6.19304.10降级到2.2.6。直接从项目中引用包以选择其他版本。
网络->
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)

请参阅for ASP.NET Core 3预览版4,其中说明此工具不再是内置的,需要显式安装:

dotnet ef工具不再是.NET核心SDK的一部分 此更改允许我们将
dotnet ef
作为常规的.NET CLI工具发布,该工具可以作为全局或本地工具安装。例如,要能够管理迁移或构建
DbContext
,请键入以下命令将
dotnet ef
安装为全局工具:

dotnet tool install --global dotnet-ef --version 3.1.4
要安装该工具的特定版本,请使用以下命令:

dotnet tool install --global dotnet-ef --version 3.1.4
变更原因在以下章节中解释:

为什么? 此更改允许我们在NuGet上作为常规的.NET CLI工具分发和更新
dotnet ef
,这与ef Core 3.0也始终作为NuGet包分发的事实一致

此外,您可能需要将以下NuGet包添加到项目中:

请参阅ASP.NET Core 3预览版4,其中说明此工具不再是内置的,需要显式安装:

dotnet ef工具不再是.NET核心SDK的一部分 此更改允许我们将
dotnet ef
作为常规的.NET CLI工具发布,该工具可以作为全局或本地工具安装。例如,要能够管理迁移或构建
DbContext
,请键入以下命令将
dotnet ef
安装为全局工具:

dotnet tool install --global dotnet-ef --version 3.1.4
要安装该工具的特定版本,请使用以下命令:

dotnet tool install --global dotnet-ef --version 3.1.4
变更原因在以下章节中解释:

为什么? 此更改允许我们在NuGet上作为常规的.NET CLI工具分发和更新
dotnet ef
,这与ef Core 3.0也始终作为NuGet包分发的事实一致

此外,您可能需要将以下NuGet包添加到项目中:


如果您使用Dockerfile进行部署,则需要采取以下步骤来解决此问题

将Dockerfile更改为包含以下内容:

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
ENV PATH $PATH:/root/.dotnet/tools
RUN dotnet tool install -g dotnet-ef --version 3.1.1

如果要使用Dockerfile进行部署,请将
dotnet ef
命令更改为
dotnet ef

,这些是解决此问题需要采取的步骤

将Dockerfile更改为包含以下内容:

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
ENV PATH $PATH:/root/.dotnet/tools
RUN dotnet tool install -g dotnet-ef --version 3.1.1

同时将您的
dotnet ef
命令更改为
dotnet ef

我也遇到了同样的问题。我通过卸载电脑上的所有版本,然后重新安装
dotnet

,解决了这个问题。我也遇到了同样的问题。我通过卸载电脑上的所有版本,然后重新安装
dotnet
解决了这个问题

全局工具可以安装在默认目录或 具体位置。默认目录为:

  • Linux/macOS-->$HOME/.dotnet/tools

  • Windows-->%USERPROFILE%\.dotnet\tools

如果尝试运行全局工具,请检查计算机上的PATH环境变量是否包含安装全局工具的路径,以及可执行文件是否位于该路径中

全局工具可以安装在默认目录或 具体位置。默认目录为:

  • Linux/macOS-->$HOME/.dotnet/tools

  • Windows-->%USERPROFILE%\.dotnet\tools

如果尝试运行全局工具,请检查计算机上的PATH环境变量是否包含安装全局工具的路径,以及可执行文件是否位于该路径中


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

dotnet工具安装--全局dotnet ef--版本3.1.3

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

中的dotnet工具
dotnet tool install --global dotnet-ef
dotnet tool restore
dotnet tool run dotnet-ef
dotnet dotnet-ef