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

Entity Framework Core 6.0.7添加迁移失败:无法加载DiagnosticsLogger类型

解决EF Core 6.0.7 + .NET 6迁移时的System.TypeLoadException问题

以下是针对该问题的具体排查和解决步骤:

  • 统一EF Core相关包版本
    确保项目中所有EF Core相关的NuGet包(包括Microsoft.EntityFrameworkCore、Microsoft.EntityFrameworkCore.Tools、Microsoft.EntityFrameworkCore.Design等)版本完全一致,都为6.0.7。可以直接打开项目的.csproj文件检查,示例配置如下:

    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.7" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.7">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.7">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    

    若存在版本不一致,统一修改后,在NuGet包管理器控制台执行Update-Package -Reinstall重新安装所有包。

  • 检查并对齐全局dotnet-ef工具版本
    全局安装的dotnet-ef工具版本可能和项目依赖的EF Core版本不匹配,导致冲突。

    1. 执行dotnet tool list --global查看当前全局工具版本
    2. 若版本不是6.0.7,先卸载旧版本:dotnet tool uninstall --global dotnet-ef
    3. 安装对应版本:dotnet tool install --global dotnet-ef --version 6.0.7
  • 清理NuGet本地缓存
    缓存损坏也可能引发此类加载异常,执行dotnet nuget locals all --clear清理所有本地NuGet缓存,之后执行dotnet restore重新还原项目依赖。

  • 排查第三方库的版本冲突
    部分第三方NuGet库可能依赖了其他版本的EF Core,导致版本冲突。可以通过以下方式排查:

    • 在Visual Studio中展开项目的「依赖项」→「NuGet」,查看每个包的依赖关系
    • 执行dotnet list package --include-transitive查看所有传递依赖,确认是否有其他库引入了非6.0.7版本的Microsoft.EntityFrameworkCore
      若存在冲突,尝试更新该第三方库到兼容EF Core 6.0.7的版本,或更换替代库。
  • 指定项目和框架执行迁移命令
    确保在NuGet包管理器控制台中选择了正确的目标项目(顶部「默认项目」下拉框),也可以尝试使用dotnet cli命令并指定框架:

    dotnet ef migrations add Test --framework net6.0
    

内容的提问来源于stack exchange,提问作者Dhawala Tharindra Ranaweera

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 05:45:38