【问题标题】:after run Add-Migration I got Your startup project doesn't reference Microsoft.EntityFrameworkCore.Design运行 Add-Migration 后,我得到了 Your startup project doesn't reference Microsoft.EntityFrameworkCore.Design
【发布时间】:2021-09-21 22:52:24
【问题描述】:

我有一个 Web 表单项目(项目 A),它引用了另一个用于数据访问层的类库项目(项目 B),并且我创建了另一个类库(助手项目-项目 C) 当我想在 DAL 项目上运行 Add-Migration 等命令时,我将此 Helper 项目作为启动项目,因为如果我在运行 EFCore 命令时将项目 A 或 B 作为启动项目,则会出错。

它工作正常,我能够添加迁移和更新数据库,但是当我想添加 Add-Migration 时突然出现错误,错误提示:

您的启动项目“XXX.Helper”未引用 Microsoft.EntityFrameworkCore.Design。此包是 Entity Framework Core Tools 工作所必需的。确保您的启动项目正确,安装包,然后重试

项目 B 和 C 使用 .NETFramework 4.7.2,项目 A 是 .NETFramework 4.5,后来我将其更改为 .NETFramework 4.7.2。我正在使用 EntityFramework v3.1.15

我该如何解决这个问题?

【问题讨论】:

    标签: c# entity-framework webforms entity-framework-core nuget


    【解决方案1】:

    如果您使用的是 NET Framework 4.7.2,您的实体框架版本不应该是 EF6 而不是 EntityFramework Core,因为当前版本的 EF 即 V 3.1 是专为 EF Core 设计的 EF Core。

    虽然在 NET Framework 中使用某些 NET 核心库并非不可能,但可能存在各种兼容性问题。

    无论您的项目很可能缺少对 EF Core 设计库的引用:https://docs.microsoft.com/pt-br/ef/core/cli/services

    您可以访问您的项目 csproj 文件并将以下内容添加到您的 PackageReferences 的其余部分:

    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.11">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    

    【讨论】:

    • 谢谢。我选择了 EfCore 3.x.x,因为我在此链接中看到 NetFramework 4.7.2 支持 EFCore 3.1 docs.microsoft.com/en-us/ef/core/miscellaneous/platforms。而且我已经在所有项目中安装了 Microsoft.EntityFrameworkCore.Design,但出现错误
    • 确实如此,我编辑了我的答案以便更清楚地了解缺少的参考
    • 我正在使用 packages.config ,我可以在其中添加 all?
    【解决方案2】:

    为我工作,包含在您的 csproj 中:

    <PropertyGroup>
      <TargetFramework>net5.0</TargetFramework>
      <GenerateRuntimeConfigurationFiles>True</GenerateRuntimeConfigurationFiles>
    </PropertyGroup>
    

    重建。

    推荐人:https://stackoverflow.com/a/58185466/5790169

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2017-08-20
    • 2017-02-17
    • 1970-01-01
    • 2021-03-06
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    相关资源
    最近更新 更多