无法加载文件或程序集'Microsoft.Practices.EnterpriseLibrary.Caching

Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Caching

在我的 Windows 服务项目中,我参考了 Enterprise Library Caching 5.0.505,但在服务启动时出现以下错误

Service cannot be started. System.IO.FileLoadException: Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
    File name: 'Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

App.Config

<configSections>

    <section name="cachingConfiguration" 
             type="Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheManagerSettings, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
             requirePermission="true" />
  </configSections>


<cachingConfiguration defaultCacheManager="Cache Manager">
    <cacheManagers>
      <add name="Cache Manager" 
           type="Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
           expirationPollFrequencyInSeconds="60" 
           maximumElementsInCacheBeforeScavenging="50000" 
           numberToRemoveWhenScavenging="1000" 
           backingStoreName="NullBackingStore" />
    </cacheManagers>
    <backingStores>
      <add type="Microsoft.Practices.EnterpriseLibrary.Caching.BackingStoreImplementations.NullBackingStore, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
           name="NullBackingStore" />
    </backingStores>
  </cachingConfiguration>

当引用的程序集与 bin 文件夹中的程序集不匹配时,就会出现这种情况。

尝试将此添加到您的 .config 文件中:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Practices.EnterpriseLibrary.Caching" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.0.505.0" newVersion="5.0.505.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>