Миграция EnterpriseLibrary v5 на v6 и.NET Framework 3.5 до 4.6.2

Существует требование о переносе нашего приложения ASP.Net (3.5 framework) на.Net framework 4.6.2. Была использована EnterpriseLibrary v5, и мы переносим / заменяем на EL v6, используя менеджер Nuget в перенесенном проекте ASP.Net (платформа 4.6.2).

Я сталкиваюсь с проблемой в EL v6 DLL во время выполнения. Хотя я добавил все необходимые библиотеки DLL из диспетчера Nuget, я получаю сообщение об ошибке, в котором говорится, что библиотека 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

Посоветуйте, пожалуйста, как мне решить все эти проблемы..

1 ответ

Фактическая проблема заключалась в том, что версия EnterpriseLibrary для кэширования была 5.0505, а для остальных - 6.0.1304 - последние в диспетчере Nuget. Из-за этого несоответствия в версиях dll возникла проблема с "Microsoft.Practices.EnterpriseLibrary.Caching". Кроме того, последний выпуск Enterprise Library(6.0.1304) удалил следующие блоки приложений:

  • Блок приложения кеширования
  • Блок криптографии
  • Блок приложения безопасности

и, следовательно, вместо использования Microsoft.Practices.EnterpriseLibrary.Caching во время миграции мы должны использовать "System.Runtime.Caching".

Ссылка - https://msdn.microsoft.com/en-us/library/dn169621.aspx

Это решило мою проблему окончательно!

Другие вопросы по тегам