运行后添加迁移我得到了您的启动项目未引用 Microsoft.EntityFrameworkCore.Design



我有一个web表单项目(项目A(,它引用了我用于数据访问层的另一个类库项目(项目B(,我制作了另一个库(Helper项目C(当我想在DAL项目上运行"添加迁移"等命令时,我会将此Helper项目作为启动项目,因为如果我在运行EFCore命令时将项目A或B作为启动项目会出错。

它运行良好,我能够添加迁移&更新数据库,但当我想添加添加迁移时,突然出现了一个错误,错误显示:

您的启动项目"XXX"。Helper"未引用Microsoft。EntityFrameworkCore。设计此程序包是实体框架核心工具工作所必需的。确保您的启动项目是正确的,安装程序包,然后重试

项目B&C正在使用。NETFramework 4.7.2,项目A是。NETFramework 4.5&后来我把它改成了。NETFramework 4.7.2。我使用的是EntityFramework v3.1.15

我该如何解决此问题?

如果您使用的是NET framework 4.7.2,您的实体框架版本不应该是EF6而不是EntityFramework Core吗?因为EF的当前版本V3.1是为EF Core设计的EF Core。

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

无论如何,您的项目很可能缺少EF Core设计库的参考:https://learn.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>

为我工作,包括在您的csproj:上

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

重建。

建议者:https://stackoverflow.com/a/58185466/5790169

看起来您也安装了EFCore,可能安装在解决方案的另一个项目中。

如果是这种情况,那么您应该明确指定要使用EFFramework迁移命令,而不是这些命令的EFCore版本

EntityFramework6Update-Database

EntityFramework6Add-Migration

最新更新