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" />清理重建项目
执行以下操作确保依赖完全更新:- 运行
dotnet clean清理项目 - 删除本地的
bin和obj文件夹 - 运行
dotnet restore重新还原依赖 - 重新编译并启动Azure Function
- 运行
额外建议
- Azure Functions v4要求使用.NET 6/7/8,所有NuGet包版本尽量和目标框架对齐,避免跨大版本引用
- 保留项目中的
<PreserveCompilationReferences>和<PreserveCompilationContext>配置,这是RazorLight编译视图的必要设置
内容的提问来源于stack exchange,提问作者Ruben
相关产品推荐
相关产品推荐

