【问题标题】:Cannot add EntityFrameworkCore Tools 1.0.1 to class library in Visual Studio 2017无法将 EntityFrameworkCore Tools 1.0.1 添加到 Visual Studio 2017 中的类库
【发布时间】:2017-12-06 21:41:37
【问题描述】:

我正在使用最新的 VS2017 更新和 donet core 1 我尝试创建一个 ef 迁移到我的项目 使用命令dotnet ef 但我明白了

dotnet : No executable found matching command "dotnet-ef"

然后我从我的类库 csproj (.Net Core) 中删除对 EntityFrameworkCore 的任何引用,并希望添加包 Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.1 。但是我拒绝了,我收到以下错误

严重性代码描述项目文件行抑制状态错误包 “Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.1”具有项目不支持的包类型“DotnetCliTool” “我的VS2017项目”。 0 我也在类库(.Net 框架)

使用包管理器控制台命令时出现相同的错误消息

安装包 Microsoft.EntityFrameworkCore.Tools.DotNet

我尝试直接编辑csproj文件并添加

<ItemGroup>
    <DotNetCliToolReference 
     Include="Microsoft.EntityFrameworkCore.Tools.DotNet" 
     Version="1.0.0" />
 </ItemGroup>

但 dotnet ef 仍然给出相同的错误消息,并且 nuget 包管理器没有看到它

我尝试创建一个新的点网核心类库,但即使是空白的也拒绝安装工具

我已经多次运行 dotnet restore 并重新启动了 Visual Studio。

我已下载最新的 dot net SDK 1.0.4 并运行修复以重新安装它。这允许安装 nuget 包,但不管我做什么,我都无法让类库理解 dotnet ef

【问题讨论】:

  • 在编辑完 csproj 后,您是否运行了 dotnet restore?
  • 是的,我确实做了 dotnet restore
  • 该包仅适用于控制台应用程序,不适用于类库。您是否尝试过在控制台应用程序中执行此操作? ...或在 asp.net 核心应用程序中,因为它也是一个控制台应用程序。
  • 我一直使用这个应用程序的类库。只是自从我升级到最后一个 Visual Studio 更新后,整个事情都被打破了。我需要使用类库,因为我使用类库将数据层/存储库与前端分开
  • 您可以将数据层放在类库中,但不能在类库中运行 dotnet ef。看到这个:github.com/aspnet/EntityFramework/issues/5320。作为测试,我真的会创建一个控制台应用程序,将迁移移到那里并从那里运行 dotnet ef ......只是为了测试它是否有效。如果没有,那么您的设置已损坏,如果有,则您会受到此“类库限制”的影响。

标签: .net-core visual-studio-2017 entity-framework-core


【解决方案1】:

我的项目针对完整的 .NET 框架,因此我只能使用 PowerShell 命令,例如add-migration、update-database 而不是 dotnet ef 命令

【讨论】:

    【解决方案2】:

    Microsoft.EntityFrameworkCore.Tools.DotNet 需要通过编辑项目添加到您的类库中。这是目前唯一支持添加它的方法。右键单击项目并选择Edit *.csproj。然后,添加以下内容:

      <ItemGroup>
        <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0-preview2-final" />
      </ItemGroup>
    

    注意:该版本是本文发布时的最新版本,将来可能会更改。

    我这里有更深入的解决方案:EF 7 Migrations with multiple DBContexts

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      相关资源
      最近更新 更多