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

Azure Function v4(net6.0)运行报错:找不到指定版本依赖程序集

问题解决指导

问题根源

你的Azure Function(.NET 6,v4)引用了一个.NET Core 3.1的工具类库,类库使用的FluentEmail 3.0.2依赖的RazorLight组件需要Microsoft.Extensions.DependencyModel 5.0.0.0,但.NET 6运行时环境中该组件版本不匹配,且跨框架引用加剧了依赖冲突,导致程序集找不到的错误。

解决方案

方案1:统一框架版本并升级FluentEmail

将工具类库的目标框架改为和Azure Function一致的.NET 6,同时升级FluentEmail相关包到适配.NET 6的稳定版本,从根源消除跨框架依赖冲突:

修改工具类库的.csproj文件:

<PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
    <PackageReference Include="FluentEmail.Core" Version="3.1.0" />
    <PackageReference Include="FluentEmail.Smtp" Version="3.1.0" />
    <PackageReference Include="FluentEmail.Razor" Version="3.1.0" />
</ItemGroup>

注:可根据实际情况选择FluentEmail的最新稳定版,确保版本兼容.NET 6。

方案2:添加程序集绑定重定向

如果无法修改工具类库的目标框架,可在Azure Function项目中添加程序集绑定重定向,让运行时将对5.0.0.0版本的请求映射到.NET 6兼容的版本:

在Azure Function项目根目录创建(或修改)app.config文件,添加以下内容:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Extensions.DependencyModel" publicKeyToken="adb9793829ddae60" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

方案3:显式引入兼容版本的依赖包

在Azure Function项目中直接引用Microsoft.Extensions.DependencyModel的.NET 6兼容版本,利用NuGet的依赖解析优先级强制使用该版本:

修改Azure Function项目的.csproj文件,添加以下包引用:

<ItemGroup>
    <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="6.0.0" />
</ItemGroup>

方案说明

  • 方案1是最优解:统一框架版本后,所有组件的依赖都会适配相同的运行时环境,彻底避免版本冲突问题。
  • 方案2和3属于临时兼容方案,适合无法修改类库框架的场景,通过重定向或强制依赖版本来解决程序集找不到的问题。

内容的提问来源于stack exchange,提问作者santosh kumar patro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:35:13