You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Functions v4运行报错:找不到Microsoft.Extensions.Options程序集

问题描述

运行Azure Functions v4(目标框架net6.0)时触发以下错误:

System.IO.FileNotFoundException: 'Could not load file or assembly 'Microsoft.Extensions.Options, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.'

项目一周前可正常运行,近期仅在其他项目升级了EF Core 7,当前函数项目的包引用配置如下:

<PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <AzureFunctionsVersion>v4</AzureFunctionsVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="7.0.0" />
    <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="7.0.0" />
    <PackageReference Include="Microsoft.Extensions.Http" Version="7.0.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.1.3" />
  </ItemGroup>

已尝试卸载重装所有NuGet包,调试文件夹中存在Microsoft.Extensions.Options.dll(v7)但仍报错,近期升级了VS 2022到17.4.1版本。

解决方案

1. 统一Microsoft.Extensions包版本为6.x

你的函数项目目标框架是net6.0,而Microsoft.NET.Sdk.Functions 4.1.3依赖的是Microsoft.Extensions 6.x系列包,混用7.0版本包会直接导致版本冲突,触发程序集加载异常。将所有7.0版本的Microsoft.Extensions相关包降级到6.x稳定版:

<ItemGroup>
    <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="6.0.1" />
    <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" />
    <PackageReference Include="Microsoft.Extensions.Http" Version="6.0.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.1.3" />
</ItemGroup>

2. 配置程序集绑定重定向(降级后仍报错时使用)

在项目根目录创建runtimeconfig.template.json文件,添加绑定重定向规则强制加载正确版本:

{
  "configProperties": {
    "Microsoft.NETCore.DotNetHostPolicy": {
      "BindingRedirects": {
        "Microsoft.Extensions.Options": {
          "Version": "6.0.0.0",
          "PublicKeyToken": "adb9793829ddae60"
        }
      }
    }
  }
}

也可以直接在项目文件(.csproj)中开启自动绑定重定向:

<PropertyGroup>
  <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>

3. 清理VS缓存与项目输出目录

  • 关闭VS 2022,删除项目下的bin、obj文件夹
  • 删除VS组件缓存:找到%LOCALAPPDATA%\Microsoft\VisualStudio\17.0_xxxx\ComponentModelCache(xxxx为你的VS实例ID)并删除该目录
  • 重启VS后重新生成解决方案

4. 更新Microsoft.NET.Sdk.Functions到兼容最新版

将Microsoft.NET.Sdk.Functions升级到4.x系列的最新稳定版(如4.2.0及以上),新版本对net6.0的兼容性更强,能降低版本冲突概率。


内容的提问来源于stack exchange,提问作者Thusitha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 21:05:23