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

加载System.Threading.Tasks.Extensions 4.2.0.0程序集失败求助

解决System.Threading.Tasks.Extensions程序集加载异常问题

以下是针对该问题的具体解决步骤:

1. 同步NuGet依赖版本

  • 确保项目及单元测试项目中,System.Threading.Tasks.Extensions、Azure.Identity和Azure.Messaging.ServiceBus包版本兼容。直接通过NuGet管理器更新所有相关包,优先匹配Azure SDK依赖的版本。
  • 也可通过Package Manager Console执行命令更新:
    Update-Package System.Threading.Tasks.Extensions
    Update-Package Azure.Identity
    Update-Package Azure.Messaging.ServiceBus
    

2. 添加程序集绑定重定向

在项目的App.config或Web.config中加入绑定重定向配置,强制应用使用当前安装的程序集版本,覆盖旧版本引用:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.5.4" /> <!-- 替换为你实际安装的版本号 -->
    </dependentAssembly>
  </assemblyBinding>
</runtime>

注意:newVersion需替换为你项目中实际安装的System.Threading.Tasks.Extensions版本号,可在NuGet包管理器中查看具体版本。

3. 清理重建项目

  • 右键项目选择「清理」,删除项目目录下的bin和obj文件夹,彻底清除旧的编译文件。
  • 重新生成项目,确保所有依赖项正确复制到输出目录。

4. 统一单元测试项目配置

单元测试项目需与主项目保持完全一致的NuGet包版本,同时在测试项目的配置文件中添加相同的程序集绑定重定向规则,避免测试环境依赖不匹配。

5. 简化Credential初始化代码

你代码中ManagedIdentityCredential的第二个参数默认即为null,可简化代码减少潜在参数问题:

private readonly ServiceBusSender _sender;
private const string QUEUENAME = "test";

public QueueService()
{
    var client = new ServiceBusClient(
        ConfigurationManager.AppSettings["ServiceBusNameSpace"],
        new ManagedIdentityCredential(clientId: ConfigurationManager.AppSettings["ManagedIdentityClientId"]));
    _sender = client.CreateSender(QUEUENAME);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 02:18:25