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

.NET 6 Azure Functions执行Scaffold后程序集加载失败求助

解决Azure Functions .NET6下Microsoft.Extensions.Logging.Abstractions程序集加载失败问题

这个问题本质是EF Core Scaffold命令引入了.NET7版本的依赖,和你的.NET6项目版本冲突导致的,以下是具体解决步骤:

  • 检查并修正项目依赖版本
    打开项目的.csproj文件,确认所有PackageReference中:

    • Microsoft.Extensions.Logging.Abstractions的版本为6.x.x(比如6.0.25),如果是7.x版本,直接修改为6.x稳定版;
    • Microsoft.EntityFrameworkCore系列包(包括SqlServer、Tools等)的版本也必须是6.x.x,Scaffold命令默认可能会安装7.x版本,这会间接引入高版本的Logging依赖。
  • 清理并重新还原依赖
    在Visual Studio的包管理器控制台执行命令:

    dotnet clean
    dotnet restore
    

    或者通过右键项目→清理,再右键→还原NuGet包完成操作。

  • 添加程序集重定向(若上述步骤无效)
    在项目中创建或修改app.config文件,加入重定向配置,让运行时将7.0.0.0版本的请求导向已安装的6.x版本:

    <configuration>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="6.0.0.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    

    注意将newVersion替换为你实际安装的6.x版本号。

  • 重新执行Scaffold时指定兼容版本
    后续再执行Scaffold命令,务必指定EF Core的6.x版本,避免再次引入高版本依赖,示例命令:

    Scaffold-DbContext "你的数据库连接字符串" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -ContextDir Data -Context YourDbContext -Force -Version 6.0.25
    
  • 清理本地NuGet缓存
    如果本地缓存存在损坏的包,可能导致版本加载异常,执行命令清理缓存后重新还原:

    dotnet nuget locals all --clear
    

内容的提问来源于stack exchange,提问作者Juan Sebastin Plaza Ballestero

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:02:12