Azure Function运行时加载System.Linq.Expressions程序集失败求助
Azure Function运行时失败排查求助
我尝试运行一个新的Azure Function,但始终在运行时失败。已尝试更新依赖项但未解决问题,同时已在项目中添加<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>配置。
以下是我的csproj文件内容:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net7.0</TargetFramework> <AzureFunctionsVersion>v4</AzureFunctionsVersion> <RootNamespace>ref_name_v3</RootNamespace> <_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput> </PropertyGroup> <ItemGroup> <PackageReference Include="LazyCache" Version="2.4.0" /> <PackageReference Include="LazyCache.AspNetCore" Version="2.4.0" /> <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.1.1" /> <PackageReference Include="System.Linq.Expressions" Version="4.3.0" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\ref1.csproj" /> <ProjectReference Include="..\ref2.csproj" /> </ItemGroup> <ItemGroup> <None Update="host.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> <None Update="local.settings.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToPublishDirectory>Never</CopyToPublishDirectory> </None> </ItemGroup> </Project>
错误截图:
解决步骤
升级Microsoft.NET.Sdk.Functions版本
当前使用的4.1.1版本与.NET 7兼容性存在隐患,建议升级到最新稳定版(如4.2.0及以上),执行命令:dotnet add package Microsoft.NET.Sdk.Functions --version 4.2.0检查项目引用兼容性
确认ref1.csproj和ref2.csproj的目标框架为.NET 7,且它们的依赖包版本与当前Function项目匹配,避免跨框架版本冲突。移除冗余的System.Linq.Expressions引用
.NET 7已内置该程序集的最新版本,手动添加4.3.0版本会引发版本冲突,直接删除该PackageReference节点即可。清理重建项目
执行以下命令清除缓存并重新生成,避免旧文件干扰:dotnet clean dotnet restore dotnet build更新Azure Functions Core Tools
确保本地Core Tools为v4最新版,旧版本无法适配.NET 7项目,更新命令:npm install -g azure-functions-core-tools@4 --unsafe-perm true
内容的提问来源于stack exchange,提问作者kolek
相关产品推荐
相关产品推荐

