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

基于.NET Framework4.6的WCF服务升级Enterprise Library后加载程序集失败

解决Enterprise Library版本不匹配导致的程序集加载错误

这种程序集加载失败的问题在跨版本升级Enterprise Library时真的很容易踩坑,结合你的情况,核心原因是组件版本不兼容——你把Common升到了6.0.1304.0,但Caching组件还停留在5.0.505.0,而旧版本的Caching依赖的是Common 5.x,运行时就会找不到它需要的Common版本,从而抛出错误。

下面是一步步的解决方案:

  • 优先统一所有Enterprise Library组件的版本
    Enterprise Library的各个组件(Common、Caching、Logging)是强耦合的,尽量保持它们处于同一个大版本(比如全部升级到6.x)。你可以:

    1. 打开项目的NuGet包管理器,卸载现有的Microsoft.Practices.EnterpriseLibrary.Caching(5.0.505.0版本)
    2. 安装与Common同版本的Caching包(也就是6.0.1304.0),同时确保Logging组件也是6.x的同版本
      这样从根源上避免版本依赖冲突。
  • 如果必须保留旧版本Caching,配置绑定重定向
    要是因为业务限制不能升级Caching,那需要在项目的app.config或web.config里添加程序集绑定重定向,让运行时把对Common 5.x的请求自动转向到你已安装的6.0.1304.0版本:
    在<runtime>节点下添加这段配置:

    <dependentAssembly>
      <assemblyIdentity name="Microsoft.Practices.EnterpriseLibrary.Common" 
                        publicKeyToken="31bf3856ad364e35" 
                        culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-6.0.1304.0" 
                       newVersion="6.0.1304.0" />
    </dependentAssembly>
    

    注意:公钥Token要和你引用的Common程序集一致,Enterprise Library的官方组件公钥Token基本都是31bf3856ad364e35,可以右键项目里的Common引用→属性查看确认。

  • 清理项目残留,重新生成
    旧的编译文件可能会残留旧版本的dll,导致冲突:

    1. 右键解决方案→选择「清理解决方案」
    2. 手动删除项目下的bin和obj文件夹
    3. 重新生成整个解决方案
  • 检查项目引用和配置一致性

    1. 确认所有Enterprise Library组件的引用都是通过NuGet安装的,没有手动添加的本地dll(这类旧dll很容易藏坑)
    2. 如果你的WCF服务配置里用到了Logging组件(比如自定义行为、日志监听),要确保配置里的type属性中的版本号和实际引用的一致,比如:
      <behaviorExtensions>
        <add name="loggingBehavior" 
             type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingBehaviorExtensionElement, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.1304.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      </behaviorExtensions>
      
      这里的版本号要和你安装的Logging版本完全匹配。

另外提醒下,Enterprise Library 6相对于5.x有一些API变更,如果后续出现编译错误,可能需要调整部分代码,但先解决当前的运行时加载问题是优先级最高的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:03:21