You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core Web应用部署时出现EntityFrameworkCore版本冲突问题

解决ASP.NET Core升级到.NET 7后EF Core版本冲突问题

排查与修复步骤

1. 核对所有项目的NuGet包版本

  • 逐个打开Web、BLL、DAL项目的NuGet包管理器,确认Microsoft.EntityFrameworkCore及其关联包(如Tools、SqlServer)全是7.0.2版本,没有6.0.2的残留引用。
  • 发现6.0.2的包直接卸载,重新安装7.0.2。

2. 统一目标框架

  • 右键每个项目→属性→应用,确认目标框架都是.NET 7.0,别让任何项目停留在.NET 6.0。

3. 解决方案级NuGet包统一升级

  • 右键解决方案→管理解决方案的NuGet包,在“已安装”标签筛选Microsoft.EntityFrameworkCore,把所有项目的引用都升级到7.0.2。

4. 清理编译缓存与旧文件

  • 删除所有项目的bin和obj文件夹,这些地方可能存着旧版本编译产物。
  • 清理NuGet缓存:工具→NuGet包管理器→包管理器设置→清除所有NuGet缓存。
  • 命令行执行清理恢复:在解决方案根目录跑这两条命令:
    dotnet clean
    dotnet restore
    

5. 检查项目引用方式

  • 确认BLL引用的是DAL项目而非旧的DLL文件。如果之前是引用.NET 6编译的DAL.dll,改成项目引用,确保编译时用最新的DAL代码。
  • 用dotnet list package --include-transitive命令在每个项目目录下运行,查所有传递依赖,找到引用EF Core 6.0.2的第三方库,升级该库到支持.NET 7的版本。

6. 手动添加绑定重定向(可选)

  • 在Web项目的web.config里加绑定重定向,强制用7.0.2版本:
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.EntityFrameworkCore" publicKeyToken="adb9793829ddae60" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-7.0.2.0" newVersion="7.0.2.0" />
    </dependentAssembly>
    

7. 确认部署环境SDK版本

  • 部署服务器必须装.NET 7 SDK,版本和本地一致。如果服务器用的还是.NET 6 SDK,编译时会自动拉旧版本库。

内容的提问来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 12:55:37