将EnterpriseLibrary v5迁移到v6和.Net framework 3.5到4.6.2

时间:2017-07-31 08:42:23

标签: c# asp.net visual-studio-2015 migration enterprise-library-6

需要将我们的ASP.Net应用程序(3.5框架)迁移到.Net framework 4.6.2。 使用EnterpriseLibrary v5,我们在迁移的ASP.Net项目(4.6.2框架)中使用Nuget管理器迁移/替换到EL v6。

我在运行时遇到EL v6 dll问题。很难,我已经从Nuget管理器添加了所有必需的dll,我收到错误消息,说dll不可用。

  

错误:

     

无法从程序集加载“Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer”类型    'Microsoft.Practices.EnterpriseLibrary.Common,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'。

以下是我在我的解决方案中加载的EL版本 -

  • Microsoft.Practices.EnterpriseLibrary.Common:v6.0.1304
  • Microsoft.Practices.EnterpriseLibrary.Data:v6.0.1304
  • Microsoft.Practices.EnterpriseLibrary.ExceptionHandling:v6.0.1304
  • Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging:v6.0.1304
  • Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.WCF:v6.0.1304
  • Microsoft.Practices.ServiceLocation :: v1.0.0
  • Microsoft.Practices.Unity.Configuration:v4.0.1
  • Microsoft.Practices.Unity:v4.0.1
  • Microsoft.Practices.Unity.Interception.Configuration:v4.0.1
  • Microsoft.Practices.Unity.Interception:v4.0.1

请告知,我该如何解决所有这些问题..

1 个答案:

答案 0 :(得分:0)

这里的实际问题是,缓存的EnterpriseLibrary版本是5.0505 其余的是6.0.1304--这是Nuget经理的最新成员。由于dll版本中的这种差异,“Microsoft.Practices.EnterpriseLibrary.Caching”提出了问题。此外,Enterprise Library(6.0.1304)的最新版本退出了以下应用程序块:

  • 缓存应用程序块
  • 加密应用程序块
  • 安全应用程序块

因此,我们应该使用“System.Runtime.Caching”而不是在迁移时使用Microsoft.Practices.EnterpriseLibrary.Caching。

参考 - https://msdn.microsoft.com/en-us/library/dn169621.aspx

这终于解决了我的问题!。