Azure Function从.NET Core 3.1升级到7.0遇程序集加载错误
解决Azure Functions从.NET Core 3.1升级到7.0后的依赖加载错误
问题根源
你遇到的Microsoft.Extensions.Configuration.Abstractions找不到的问题,核心原因是依赖包版本不兼容:
- 项目已升级到
net7.0和Azure Functions v4,但Microsoft.NET.Sdk.Functions仍为3.0.11版本——该版本适配.NET Core 3.1,与net7.0的依赖体系不匹配,会引发底层依赖版本冲突,单独安装单个组件无法解决整体版本兼容问题。
解决步骤
1. 升级核心函数SDK包
将Microsoft.NET.Sdk.Functions升级到兼容net7.0的版本(Azure Functions v4要求该包版本至少为4.x,推荐使用最新稳定版):
Install-Package Microsoft.NET.Sdk.Functions -Version 4.2.1
或使用dotnet CLI:
dotnet add package Microsoft.NET.Sdk.Functions --version 4.2.1
2. 同步更新相关依赖包
Microsoft.ApplicationInsights.WorkerService版本2.15.0偏旧,建议升级到兼容Functions v4的版本(比如2.21.0或更高):Install-Package Microsoft.ApplicationInsights.WorkerService -Version 2.21.0Microsoft.Azure.Functions.Extensions版本1.1.0兼容v4,可保留,也可同步升级到最新稳定版。
3. 清理缓存并重建项目
彻底清除旧依赖残留:
- 删除项目目录下的
bin和obj文件夹 - 执行清理命令:
dotnet clean - 重新构建项目:
dotnet build
4. 验证第三方包兼容性
PnP.Core.Auth 1.8.0已支持net6.0+,理论上兼容net7.0;若后续仍有问题,可尝试升级到该包的最新稳定版。
修改后的csproj示例
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net7.0</TargetFramework> <AzureFunctionsVersion>v4</AzureFunctionsVersion> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.21.0" /> <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" /> <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.2.1" /> <PackageReference Include="PnP.Core.Auth" Version="1.8.0" /> </ItemGroup> <ItemGroup> <None Update="host.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> <None Update="local.settings.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToPublishDirectory>Never</CopyToPublishDirectory> </None> </ItemGroup> </Project>
内容的提问来源于stack exchange,提问作者John John
相关产品推荐
相关产品推荐

