.NET Core 8/Blazor执行Entity Framework迁移报错,求有效解决方案
解决方案
确保dotnet-ef工具版本与项目.NET版本匹配
- 先查看全局工具版本:
dotnet tool list -g - 若全局工具是低版本(如5.x),卸载后安装对应.NET 8的版本:
- 卸载命令:
dotnet tool uninstall --global dotnet-ef - 安装命令:
dotnet tool install --global dotnet-ef --version 8.*
- 卸载命令:
- 也可改用项目本地工具避免版本冲突:
- 项目目录执行:
dotnet new tool-manifest - 添加本地工具:
dotnet tool install dotnet-ef --version 8.* - 后续执行
dotnet ef命令会自动使用本地版本
- 项目目录执行:
- 先查看全局工具版本:
统一EF Core包与项目.NET版本
- 项目基于.NET 8,EF Core版本必须与.NET主版本匹配(需用8.x版本),之前降级到5.0.5会导致版本不兼容
- 打开项目.csproj文件,将所有Microsoft.EntityFrameworkCore相关包版本改为8.*,示例:
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0" /> - 执行
dotnet restore恢复依赖包
验证.NET SDK安装与环境配置
- 执行
dotnet --list-sdks确认已安装.NET 8.x SDK - 若未安装,下载并安装对应版本的.NET 8 SDK
- 检查
DOTNET_ROOT环境变量是否指向.NET 8安装目录,若缺失则添加;安装完成后重启终端使配置生效
- 执行
清理缓存并重建项目
- 清理dotnet工具缓存:
dotnet tool clean - 清理项目编译缓存:删除项目目录下的bin、obj文件夹,或执行
dotnet clean - 执行
dotnet build重新构建项目,之后再尝试创建迁移
- 清理dotnet工具缓存:
内容的提问来源于stack exchange,提问作者user9507446
相关产品推荐
相关产品推荐

