1

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

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

错误 :

无法从程序集“Microsoft.Practices.EnterpriseLibrary.Common,版本=6.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35”加载类型“Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer”。

这是我在解决方案中加载的 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

请指教,我该如何解决所有这些问题..

4

1 回答 1

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

这终于解决了我的问题!

于 2017-07-31T13:05:46.840 回答