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

Azure Function(HTTP触发)集成EF时程序集加载失败求助

解决Azure Function集成EF时Microsoft.Extensions.DependencyModel缺失错误

问题分析

你遇到的错误:

System.Private.CoreLib: Exception while executing function: OrdersExportFunction. RazorLight: Could not load file or assembly 'Microsoft.Extensions.DependencyModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.

本质是依赖版本不兼容:

  • 项目目标框架是.NET 6,但你引用的Entity Framework Core是3.1.9版本(适配.NET Core 3.1),和.NET 6的依赖生态不匹配
  • RazorLight 2.3.1在.NET 6环境下需要Microsoft.Extensions.DependencyModel 6.0.0.0,但EF 3.1.9不会引入这个包,导致运行时找不到

修复步骤

  • 升级EF Core到.NET 6兼容版本
    修改项目文件中的EF相关包引用,替换为6.0.x系列版本(比如6.0.25,和.NET 6生命周期一致):

    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.25" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.25" />
    
  • 补充缺失的依赖包(可选)
    如果升级EF后仍有问题,或者暂时不想升级EF,可以手动添加Microsoft.Extensions.DependencyModel包:

    <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="6.0.0" />
    
  • 清理重建项目
    执行以下操作确保依赖完全更新:

    1. 运行dotnet clean清理项目
    2. 删除本地的bin和obj文件夹
    3. 运行dotnet restore重新还原依赖
    4. 重新编译并启动Azure Function

额外建议

  • Azure Functions v4要求使用.NET 6/7/8,所有NuGet包版本尽量和目标框架对齐,避免跨大版本引用
  • 保留项目中的<PreserveCompilationReferences>和<PreserveCompilationContext>配置,这是RazorLight编译视图的必要设置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:52:48