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

RabbitMQ.Client.dll抛出FileLoadException异常的原因、解决及VS2019文件位置查询

我之前也碰到过这个和RabbitMQ.Client相关的程序集加载错误,给你梳理下原因和解决步骤:

错误原因分析

这个System.IO.FileLoadException本质是程序集版本不匹配:你的项目引用的Microsoft.Diagnostics.Tracing.EventSource版本是1.1.28.0,但实际运行时CLR找到的程序集(或者它的依赖组件)的清单定义和引用要求不一致,导致加载失败。通常是NuGet包版本冲突、绑定重定向未配置,或者RabbitMQ.Client的依赖版本和你项目中其他包的依赖版本冲突导致的。

解决步骤
  • 检查并安装对应版本的NuGet包

    1. 右键项目 → 「管理NuGet程序包」,在「浏览」标签搜索Microsoft.Diagnostics.Tracing.EventSource。
    2. 如果未安装,直接安装1.1.28.0版本;如果已安装其他版本,尝试降级/升级到1.1.28.0。
    3. 同时检查RabbitMQ.Client的版本,确保它依赖的Microsoft.Diagnostics.Tracing.EventSource版本和你安装的一致(可以在NuGet「已安装」标签里查看RabbitMQ.Client的依赖项)。
  • 配置程序集绑定重定向
    如果安装对应版本后仍报错,大概率是绑定重定向未正确设置:

    1. 打开项目的App.config(Web项目为Web.config),找到<runtime>节点(没有的话就添加一个)。
    2. 在<runtime>内添加以下配置:
      <dependentAssembly>
          <assemblyIdentity name="Microsoft.Diagnostics.Tracing.EventSource" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
          <bindingRedirect oldVersion="0.0.0.0-1.1.28.0" newVersion="1.1.28.0" />
      </dependentAssembly>
      
    3. 保存后重新编译项目,这个配置会告诉CLR强制使用1.1.28.0版本加载该程序集,忽略版本不匹配的问题。
  • 清理并重建项目
    本地bin/obj目录可能残留旧版本程序集导致加载混乱:

    1. 右键项目 → 「清理」,然后右键 → 「生成」。
    2. 也可以手动删除项目根目录下的bin和obj文件夹,再重新编译。
关于找不到程序集位置的问题

你用Ctrl+Shift+T没找到的话,可以试试这些路径:

  • NuGet本地缓存路径:默认在C:\Users\[你的用户名]\.nuget\packages\microsoft.diagnostics.tracing.eventsource\1.1.28.0\lib,里面会根据不同.NET框架版本分文件夹(比如net45、netstandard1.0),对应你项目的目标框架去查找dll。
  • 项目依赖目录:如果你已经通过NuGet安装了这个包,右键项目 → 「查看所有文件」,展开Dependencies → Packages,找到Microsoft.Diagnostics.Tracing.EventSource包,右键 → 「在文件资源管理器中打开」,就能直接定位到dll所在文件夹。
  • 注意:如果还没安装这个NuGet包,Visual Studio的搜索肯定找不到,先按前面的步骤安装后再找。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:42:42