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

如何解决调用Azure.Storage.Blobs时System.Threading.Tasks.Extensions加载错误

问题原因
  • 本质是.NET Framework项目引用.NET Standard类库时的程序集版本匹配冲突:Azure.Storage.Blobs v12.9.1依赖特定版本的System.Threading.Tasks.Extensions,但项目输出目录的dll版本和依赖要求的版本不匹配,绑定重定向配置错误导致无法正常降级/升级引用。
  • 你之前填写的绑定重定向newVersion="4.5.4.0"是Nuget包版本号,但System.Threading.Tasks.Extensions的Nuget版本和程序集版本不对应:比如Nuget v4.5.4对应的实际程序集版本为4.2.0.1,版本号不匹配导致重定向完全不生效。
  • 单元测试项目默认可能未开启自动绑定重定向,就算手动添加配置也可能生成时没有被写入最终的运行时配置文件。
解决方案

1. 开启单元测试项目的自动绑定重定向

右键单元测试项目 → 选择「属性」→ 切换到「生成」标签页,勾选「自动生成绑定重定向」选项。
如果使用旧格式的csproj项目,直接编辑项目文件,在第一个<PropertyGroup>节点下添加两个配置:

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

2. 修正绑定重定向配置

先找到测试项目bin/Debug目录下的System.Threading.Tasks.Extensions.dll,右键 → 属性 → 详细信息,查看「程序集版本」字段的实际值,比如是4.2.0.1。
修改App.config里的绑定重定向,把newVersion改成你查到的实际程序集版本:

<dependentAssembly>
  <assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.5.4.0" newVersion="4.2.0.1" />
</dependentAssembly>

3. 清理缓存并重新生成

  • 关闭Visual Studio,删除所有项目(包括类库和测试项目)的bin、obj文件夹
  • 执行命令dotnet nuget locals all --clear清理全局Nuget缓存,也可以手动删除C:\Users\你的用户名\.nuget\packages目录下的所有内容
  • 重新打开VS,还原Nuget包后重新生成整个解决方案

4. 验证配置生效

生成完成后检查测试项目bin目录下的[你的测试项目名].dll.config文件,确认里面已经包含了你添加的绑定重定向配置,如果没有则手动复制进去即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:45:02