Add-Migration命令报错:项目未安装Entity Framework包(已装EF Core)
已安装EF Core相关包却提示未安装Entity Framework包的问题
我的解决方案中所有项目均面向.NET 8,仅引用EF Core相关包,未引用旧版Entity Framework包。但执行add-migration命令时,系统始终提示项目UCMS_Surrogates_Rewrite.Data未安装EntityFramework包,另一个配置完全相同的解决方案却能正常执行该命令。
执行的命令及输出:
PM> add-migration newMigration
The EntityFramework package is not installed on project 'UCMS_Surrogates_Rewrite.Data'.
PM> add-migration newMigration -ProjectName UCMS_Surrogates_Rewrite.Data -StartupProjectName UCMS_Surrogates_Rewrite.Api
The EntityFramework package is not installed on project 'UCMS_Surrogates_Rewrite.Data'.
Data项目的.csproj文件内容:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> </ItemGroup> <ItemGroup> <ProjectReference Include="..\UCMS_Surrogates_Rewrite.Domain\UCMS_Surrogates_Rewrite.Domain.csproj" /> </ItemGroup> </Project>
可能的解决办法:
- 修复版本不匹配:项目目标框架是.NET 8,但EF Core包用的是7.0.0版本,版本不兼容会导致工具识别异常。将所有EF Core包升级到8.x系列的稳定版本,确保版本与.NET 8匹配。
- 切换到.NET CLI命令:Package Manager Console可能存在版本识别问题,改用.NET CLI执行迁移命令:
dotnet ef migrations add newMigration --project UCMS_Surrogates_Rewrite.Data --startup-project UCMS_Surrogates_Rewrite.Api - 清理项目缓存:删除Data项目和启动项目的
bin、obj文件夹,重启Visual Studio后重新生成整个解决方案,再尝试执行迁移命令。 - 检查DbContext配置:确认
DbContext类正确继承自Microsoft.EntityFrameworkCore.DbContext,且启动项目的Program.cs中已通过AddDbContext完成服务注册。 - 排查旧版EF残留:检查项目文件和解决方案中是否存在旧版Entity Framework的残留配置(比如不带Core的
EntityFramework包引用、旧迁移文件),清理后重新尝试。
内容的提问来源于stack exchange,提问作者hsoj
相关产品推荐
相关产品推荐

