В настоящее время я разрабатываю веб-сайт Umbraco с использованием ASP.NET MVC. На веб-сайте также есть ссылка на другой компонент, который использует EntityFramework 5 для подключения к другой базе данных, кроме CMS. (Обе базы данных - это MySQL).Зависимости NuGet и несколько версий DLL
Я использую NuGet для управления моими зависимостями. Это (среди прочих) в настоящее время пакетов у меня есть и их зависимостей:
DataComponent
-> MySQL.Data.Entities 6.7.4
-> MySql.Data 6.7.4 (dependency for at least 6.7.4)
Web
Umbraco core
-> MySql.Data 6.6.5 (exact version)
Проблема теперь, что веб-компонент имеет ссылку на компонент данных и, следовательно, ссылки на MySQL.Data conflict:
- Я не могу обновить MySql.Data in th e, потому что ядро Umbraco имеет зависимость от этой конкретной версии.
- Я не могу отказаться от пакета datacomponent, потому что есть ошибка с 6.6.5 версией компонента MySQL.Data.Entities.
То, что я пытался сделать, некоторые некоторые bindingRedirects в папку за пределами бункера:
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.6.5.0" newVersion="6.6.5.0" />
<codeBase version="6.7.4.0" href="Assembly/6.7.4/MySql.Data.dll"/>
<codeBase version="6.6.5.0" href="Assembly/6.6.5/MySql.Data.dll"/>
</dependentAssembly>
Проблема здесь состоит в том, что AssemblyBinder выглядит внутри бен-каталог первой, и есть 6.6. 5-версия DLL, следовательно, это явное определение не соответствует сборке. Он находится в папке bin, потому что я все еще хочу, чтобы пакет был пакетом NuGet.
Единственное, что я могу придумать, это полностью удалить пакет Umbraco и решить его вручную. Таким образом, в бункере не будет библиотеки DLL, и AssemblyBinder должен будет выглядеть в правильной папке. Я не хочу этого делать, потому что мне нужно правильно настроить пакет на нашем CI-сервере и на других компьютерах разработчиков. Кроме того, в пакете есть много других зависимостей, которые я хотел бы решить автоматически.
Кто-нибудь знает о другом решении?