.NET 7项目创建Razor Page时遇Microsoft.EntityFrameworkCore加载错误
解决EF Core版本不匹配导致的程序集加载错误
问题原因
项目中EF Core相关包版本为7.0.1,但Microsoft.VisualStudio.Web.CodeGeneration.Design(版本7.0.11)依赖的EF Core版本是7.0.12,运行时尝试加载更高版本的程序集,导致出现Could not load file or assembly 'Microsoft.EntityFrameworkCore, Version=7.0.12.0'错误。
解决方案
方案一:统一EF Core包版本到7.0.12
将所有EF Core相关包的版本更新为7.0.12,与代码生成工具依赖的版本匹配。修改后的项目文件如下:
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net7.0</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.12" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.12"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.12" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.12" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.12"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="7.0.11" /> </ItemGroup> </Project>
方案二:降级代码生成工具版本(不推荐)
若不想升级EF Core版本,可将Microsoft.VisualStudio.Web.CodeGeneration.Design降级到与7.0.1匹配的版本(如7.0.1),但此版本可能缺少部分功能或修复,因此优先推荐方案一。
后续操作
- 保存修改后的项目文件
- 右键项目,选择还原NuGet包
- 执行清理解决方案(菜单:生成 -> 清理解决方案)
- 执行重新生成解决方案(菜单:生成 -> 重新生成解决方案)
- 再次尝试创建Razor Page
内容的提问来源于stack exchange,提问作者shan98
相关产品推荐
相关产品推荐

