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

.NET 6 Azure Functions引入FluentFTP遇Microsoft.Extensions.Http版本冲突

问题原因

你的问题本质是框架版本依赖不匹配:

  • 基于.NET 6开发Azure Functions时,其运行时宿主环境默认依赖Microsoft.Extensions.Http的6.x系列版本。
  • 最新版FluentFTP已升级依赖,要求使用Microsoft.Extensions.Http 7.0.0及以上(对应.NET 7+框架)。安装该版本FluentFTP后,它会自动引入高版本的Microsoft.Extensions.Http,但.NET 6的Azure Functions宿主环境中没有这个版本的程序集,因此启动时抛出文件找不到的异常。
  • 降级到6.0.0或回退到2.2.0能正常启动,是因为这两个版本与.NET 6运行时的依赖版本完全兼容,宿主环境可找到对应程序集。
是否能使用所有包的最新版本?

可以通过以下方案实现:

方案1:升级Azure Functions目标框架到.NET 7/8

若业务允许,将项目目标框架从.NET 6升级到.NET 7或.NET 8,同时确保Azure Functions Runtime版本升级到4.x及以上(.NET 7/8需Runtime 4.x支持)。升级后,宿主环境会自带对应版本的Microsoft.Extensions.Http,可兼容FluentFTP的最新依赖。

方案2:配置程序集绑定重定向

通过重定向配置,让运行时将对Microsoft.Extensions.Http 7.0.0的请求指向已存在的6.0.0版本:

  1. 在项目根目录创建runtimeconfig.template.json文件,添加以下内容:
{
  "runtimeOptions": {
    "assemblyBinding": {
      "dependencies": [
        {
          "name": "Microsoft.Extensions.Http",
          "publicKeyToken": "adb9793829ddae60",
          "redirectTo": "6.0.0.0",
          "oldVersion": "7.0.0.0"
        }
      ]
    }
  }
}
  1. 在项目的.csproj文件中添加以下配置,确保构建时生成正确的运行时配置:
<PropertyGroup>
  <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
</PropertyGroup>

该方案无需升级框架,即可同时使用最新版FluentFTP和适配.NET 6的HTTP相关包。

方案3:选择兼容.NET 6的FluentFTP最新版本

查看FluentFTP的NuGet版本列表,选择最新且依赖Microsoft.Extensions.Http 6.x系列的版本安装。这样既能使用较新的FluentFTP功能,又不会引入高版本依赖冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:46:15