Entity framework core 具有EF core 2.1的类库?找不到匹配命令的可执行文件“;dotnet ef“;

Entity framework core 具有EF core 2.1的类库?找不到匹配命令的可执行文件“;dotnet ef“;,entity-framework-core,Entity Framework Core,我正在尝试使用EF core 2.1设置一个类库项目,并从.NET core api项目中使用这个类库。当我尝试将模式反向工程到dbcontext中时,我收到一个错误,抱怨缺少EF命令 类库csproj <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> </PropertyGro

我正在尝试使用EF core 2.1设置一个类库项目,并从.NET core api项目中使用这个类库。当我尝试将模式反向工程到dbcontext中时,我收到一个错误,抱怨缺少EF命令

类库csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />

  </ItemGroup>

</Project>

错误:

No executable found matching command "dotnet-ef"
因此,在阅读了关于这个的其他一些线程之后,我在ItemGroup部分将我的csproj文件更改为如下所示

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
  </ItemGroup>

现在EF命令运行,我得到了我的实体类。我的问题是,为什么我还必须手动向csproj文件添加一些内容?难道没有别的办法吗?这是推荐的方式吗?好像我错过了一个dotnet命令步骤或者什么

而且,看起来我不是唯一一个遇到这些问题的人

从.NET Core SDK 2.1.300开始,cli支持所谓的,无需手动将这些工具添加到csproj文件中

您只需调用
dotnet tool install-g toolname
即可,与
npm
中类似。您可以在这里找到有关可用工具的一些信息

dotnet ef
已包含在2.1.300 SDK CLI中


我建议您安装并安装.NET Core SDK 2.1.300以获得此全局工具支持,但如果您没有迁移到.NET Core 2.1的计划,则仍然使用.NET Core 2.0。

从.NET Core SDK 2.1.300 cli支持开始,即所谓的cli支持,无需手动将这些工具添加到csproj文件中

您只需调用
dotnet tool install-g toolname
即可,与
npm
中类似。您可以在这里找到有关可用工具的一些信息

dotnet ef
已包含在2.1.300 SDK CLI中

我建议您安装并安装.NET Core SDK 2.1.300以获得此全局工具支持,但如果您没有迁移到.NET Core 2.1的计划,则仍然使用.NET Core 2.0

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
  </ItemGroup>