Миграция 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
Это решило мою проблему окончательно!