.NET 6 Azure Function App部署报错:无法加载指定程序集
解决Azure Function App v4(.NET 6)发布后依赖加载失败问题
1. 修正依赖版本与绑定重定向
别再把包降级到3.1.0,v4运行时基于.NET 6,适配的是6.0.x版本的依赖。在项目的.csproj文件中添加或确认以下配置,强制运行时使用正确版本:
<PropertyGroup> <AzureFunctionsVersion>v4</AzureFunctionsVersion> <TargetFramework>net6.0</TargetFramework> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" /> </ItemGroup>
2. 清理Azure部署残留文件
发布时旧依赖可能没被覆盖,手动清理站点文件:
- 登录Azure门户,进入你的Function App,打开高级工具(Kudu)
- 进入
Debug console->CMD,删除site\wwwroot下所有文件后重新发布
3. 二次核对运行时配置
确认Azure门户的Function App设置无偏差:
- 进入配置 -> 常规设置,检查:
- 运行时堆栈:
.NET 6 - 运行时版本:
~4 - 架构:和本地编译架构一致(x64/x86)
- 运行时堆栈:
4. 排查第三方包依赖冲突
用NuGet包管理器控制台执行命令,查看是否有第三方包偷偷依赖3.1.0版本的Abstractions:
Get-Package -ProjectName 你的函数项目名称 | Select-Object Id, Version, Dependencies
找到冲突包后,要么更新该包到支持.NET 6的版本,要么通过<PackageReference>的ExcludeAssets排除旧版依赖。
5. 切换到隔离模式部署
若以上方法无效,改用隔离模式避免宿主环境依赖冲突:
在.csproj中修改配置:
<PropertyGroup> <AzureFunctionsVersion>v4</AzureFunctionsVersion> <TargetFramework>net6.0</TargetFramework> <OutputType>Exe</OutputType> <IsWorkerRuntime>true</IsWorkerRuntime> </PropertyGroup>
内容的提问来源于stack exchange,提问作者NorseCode
相关产品推荐
相关产品推荐

