0

需要將我們的ASP.Net應用程序(3.5框架)遷移到.Net框架4.6.2。 EnterpriseLibrary v5已被使用,我們正在使用遷移的ASP.Net項目(4.6.2框架)中的Nuget管理器遷移/替換爲EL v6。將EnterpriseLibrary v5遷移到v6和.Net framework 3.5到4.6.2

我在運行時遇到EL v6 dll問題。堅韌,我已經從Nuget經理添加了所有必需的DLL,我收到錯誤消息說該DLL不可用。

錯誤:

未能從程序集加載類型 'Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer' 「Microsoft.Practices.EnterpriseLibrary.Common,版本= 6.0.0.0,文化=中立,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

請指教,我怎麼能解決所有這些問題。 。

+0

同樣的問題被報告:https://stackoverflow.com/questions/24574508/microsoft-enterprise-library-type-load-exception-couldnot-load-microsoft-practic – Bhaski

回答

0

這裏的實際問題是,用於緩存的EnterpriseLibrary版本是5.0505 ,其餘的是6.0.1304 - 這是Nuget管理器中的最新版本。由於dll版本的這種差異,「Microsoft.Practices.EnterpriseLibrary.Caching」出現了問題。此外,企業圖書館(6.0.1304)最新發布的退休以下應用程序塊:

  • 緩存應用程序塊
  • 加密應用程序塊
  • 安全應用程序塊

,因此,代替在遷移時使用Microsoft.Practices.EnterpriseLibrary.Caching,我們應該使用「System.Runtime.Caching」。

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

這解決了我的問題終於!