Azure Function从.NET Core 3.1升级到7.0遇程序集加载异常求助
Azure Function升级至.NET 7后
Microsoft.Extensions.Http找不到的问题根源 Azure Functions Runtime版本不匹配:.NET 7对应的Azure Functions Runtime必须是v4版本。如果还在用v3 runtime,它不会自带.NET 7版的
Microsoft.Extensions.Http组件,就算本地NuGet装了,部署到Azure时runtime环境没有这个依赖,必然报错。本地开发工具版本过旧:Azure Functions Core Tools版本没跟上.NET 7的话,调试时没法正确加载
Microsoft.Extensions.Http7.0.0.0版本,导致本地运行就出问题。项目配置残留错误:
- 项目文件
.csproj里可能没把<TargetFramework>设为net7.0,或者还留着.NET Core 3.1的旧配置; - 缺少
<AzureFunctionsVersion>v4</AzureFunctionsVersion>配置,构建时没法对齐v4 runtime的依赖集合; app.config或runtimeconfig.json里的绑定重定向规则没更新到7.0版本,程序还在找旧版本组件,自然找不到。
- 项目文件
NuGet依赖有问题:
- 虽然手动更新了包,但间接依赖的其他包可能还引用着旧版
Microsoft.Extensions.Http,引发版本冲突; - 本地NuGet缓存损坏,导致包没正确还原,得清理缓存后重新安装;
- 像
Microsoft.Azure.Functions.Worker这类Azure Functions核心包没升级到v4对应版本,它们内部依赖的Microsoft.Extensions.Http版本不对。
- 虽然手动更新了包,但间接依赖的其他包可能还引用着旧版
部署时文件缺失:
- 发布过程中
Microsoft.Extensions.Http.dll没被正确复制到输出目录,可能是项目的“复制本地”设置错了,或者发布时选的模式(自包含/依赖框架)不合适; - 部署到Azure时部分文件上传失败,服务器上压根没这个dll文件。
- 发布过程中
内容的提问来源于stack exchange,提问作者sansalk
相关产品推荐
相关产品推荐

