DIPAK@EMSYS Ответов: 1

Конфликт версий-assembly.loadfrom


Я пытаюсь загрузить несколько библиотек DLL из приложения во время выполнения.
Например, как показано ниже.

Assembly assembly = Assembly.LoadFrom("MyNice.dll");
Type type = assembly.GetType("MyType");
object instanceOfMyType = Activator.CreateInstance(type);

Assembly assembly = Assembly.LoadFrom("MyAnotherNice.dll");
Type type = assembly.GetType("MyType");
object instanceOfMyType = Activator.CreateInstance(type);


Оба
MyNice.dll and MyAnotherNice.dll
ссылаются на одну и ту же библиотеку с разными версиями. Скажи Reflib.dll и Reflib.dll.

Вопрос : возможно ли это и если да, то как будут выглядеть версии
Reflib.dll  
ссылка на библиотеку будет разрешена во время выполнения, так как обе версии имеют значительные различия в функциональности.

Что я уже пробовал:

Я действительно не пробовал этого, но у меня есть требование реализовать это, и я уверен, что у меня есть такой сценарий, чтобы справиться. Я ищу лучшие практики, которым следуют или которые принимают профессионалы.

1 Ответов

Рейтинг:
2

Pete O'Hanlon

В этом сценарии я бы, как правило, использовал отдельные домены приложений, чтобы поддерживать порядок и чистоту. Я столкнулся именно с этим сценарием, когда некоторое время назад написал обработчик плагинов и решил его с помощью AppDomains для загрузки сборок и их зависимостей.


DIPAK@EMSYS

Спасибо. Я думал о том же. Единственная часть, которая мне не ясна, - это как мы также загружаем зависимости?

Pete O'Hanlon

Вы должны посмотреть на это https://msdn.microsoft.com/en-us/library/ff527268.aspx

DIPAK@EMSYS

Спасибо. Хорошее начало для меня..:)

Pete O'Hanlon

Пожалуйста. Рад быть полезным.