升级到EL 5';微软实践.EnterpriseLibrary.缓存.或其依赖项之一

本文关键字:缓存 EnterpriseLibrary 依赖 EL 微软 | 更新日期: 2023-09-27 18:00:28

我已尝试将我的企业库从4.0.0.0升级到5.0.5.0

我知道使用NuGet是安全的方法。

我用过它,但得到了这个错误:

创建的配置节处理程序时出错cachingConfiguration:无法加载文件或程序集"微软。实践。EnterpriseLibrary。缓存,版本=5.0.505.0,Culture=neutral、PublicKeyToken=null或其依赖项之一。这个找到的程序集的清单定义与程序集不匹配参考(HRESULT异常:0x80131040)

Configuration Error


Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 


Parser Error Message: An error occurred creating the configuration section handler for cachingConfiguration: Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.505.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)


Source Error: 




Line 8:      <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
Line 9:      <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.505.0, Culture=neutral, PublicKeyToken=null" />
Line 10:     <section name="cachingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheManagerSettings, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.505.0, Culture=neutral, PublicKeyToken=null" />
Line 11:     <section name="instrumentationConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Common.Instrumentation.Configuration.InstrumentationConfigurationSection, Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.505.0, Culture=neutral, PublicKeyToken=null" />
Line 12:     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />


Source File: D:'MaM'Server'ClientServices'Dev'ClientService 1.5'Conduit.Mam.ClientService.Service'web.config    Line: 10 


Assembly Load Trace: The following information can be helpful to determine why the assembly 'Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.505.0, Culture=neutral, PublicKeyToken=null' could not be loaded.




=== Pre-bind state information ===
LOG: User = CONDUIT-IL'elad.bendavid
LOG: DisplayName = Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.505.0, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = file:///D:/MaM/Server/ClientServices/Dev/ClientService 1.5/Conduit.Mam.ClientService.Service/
LOG: Initial PrivatePath = D:'MaM'Server'ClientServices'Dev'ClientService 1.5'Conduit.Mam.ClientService.Service'bin
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: D:'MaM'Server'ClientServices'Dev'ClientService 1.5'Conduit.Mam.ClientService.Service'web.config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:'Windows'Microsoft.NET'Framework'v4.0.30319'config'machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/fb9f9038/ea6afb52/Microsoft.Practices.EnterpriseLibrary.Caching.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/fb9f9038/ea6afb52/Microsoft.Practices.EnterpriseLibrary.Caching/Microsoft.Practices.EnterpriseLibrary.Caching.DLL.
LOG: Attempting download of new URL file:///D:/MaM/Server/ClientServices/Dev/ClientService 1.5/Conduit.Mam.ClientService.Service/bin/Microsoft.Practices.EnterpriseLibrary.Caching.DLL.
WRN: Comparing the assembly name resulted in the mismatch: PUBLIC KEY TOKEN
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

我的web.config:

我试着用NuGet看看,什么dll依赖于什么dll。

我验证了所有正确版本的dll都被重新定义(由NuGet安装)

我试过DependenciesWallker,但不明白缺少了什么。

升级到EL 5';微软实践.EnterpriseLibrary.缓存.或其依赖项之一

您需要使用对程序集进行签名的实际公钥。仅仅输入NULL就会导致不匹配和加载失败。

我也遇到了这个异常。web.config中的configSections部分引用了4.0框架。将部分更改为这个解决了我的问题:

<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />

请添加ADO。NET实体模型文件再次放入项目中。不要删除现有的。您只需在项目中再创建一个.edmx文件。它将在项目中引用新的5.0版本DLL文件,并将代码添加到配置文件中。添加文件后,可以从项目中删除该文件。它仅用于将新创建的引用添加到项目中。试试这个,它会起作用。。。。