Я написал библиотеку DLL MyLib.dll (версия 1.0.0), которая зависит от третьей партии DLL библиотеки OtherLIB.dll (версия 1.0.0). Библиотека OtherLIB.dll доступна в NuGet, и я добавляю ее в проект MyLIB.dll через менеджера пакетов NuGet.C# .Net Dll Ссылки Завис
Теперь давайте говорить, что я пишу новое приложение, скажем MyAspNetMvcApp и я добавляю MyLib.dll (версия 1.0.0) к нему через NuGet. Он автоматически добавляет OtherLIB.dll (версия 1.0.0), поскольку это зависит от него. Все работает отлично, но ...
Через месяц там выпускается новая версия OtherLIB.dll - версия 1.0.1 . Я обновляю его через NuGet.
Теперь мое приложение ASP.NET MVC перестает работать, потому что возникает исключение MyLIB.dll. Он ожидает OtherLIB.dll в версии 1.0.0, но уже используется более новая версия.
В MyLib.dll ссылок проекта я вижу, что «Конкретная версия» флаг для OtherLIB.dll в настоящее время устанавливается на «False», так что я понятия не имею, что здесь происходит ...
Есть ли возможность решить эту проблему иначе, чем путем предоставления привязки сборки в файле web.config? Как я могу добавить ссылку на OtherLIB.dll для MyLIB.dll таким образом, чтобы не было исключения, когда я обновляю OtherLIB.dll в более новой версии?
Похоже, вы страдаете от DLL Hell. Проводили ли вы развертывание некоторых из этих DLL в глобальном кэше сборок (GAC)? – GrantByrne
У вас вопрос немного расплывчатый. Если вы не хотите использовать v1.0.1 из ** OtherLIB.dll **, почему вы обновили свое решение MVC? –
Это не значит, что я не хочу использовать v1.0.1. Я хочу использовать самую последнюю версию ** OtherLIB.dll **, но я не хочу выпускать новую версию ** MyLIB.dll ** каждый раз, когда новая версия ** OtherLIB.dll ** выпущен. Я не хочу, чтобы у пользователей моей библиотеки возникла проблема при обновлении ** OtherLIB.dll ** с помощью менеджера NuGet. –