В настоящее время я работаю над плагином для стороннего приложения WindowsForms, где он будет сосуществовать с другими плагинами. Обратите внимание, что я не имею никакого контроля над источником или файлами, используемыми базовым приложением (будь то dll-файлы, файлы конфигурации и т. Д.), А также над другими плагинами, которые могут быть загружены во время выполнения.
Давайте представимчто один из других плагинов, при загрузке перед моим, загружает зависимость от версии 1.0 библиотеки A («A.dll»). Если мой плагин пытается загрузить версию 2.0 библиотеки A (также называемой «A.dll»), меня сразу же приветствует классическая «System.IO.FileLoadException».
После погружения в тему зависимостичерт, мне предложили несколько вариантов (например, здесь или здесь ). Однако все эти параметры, по-видимому, ориентированы на автономные приложения, над которыми разработчик обычно имеет полный контроль, которые требуют загрузки двух версий одной и той же библиотеки (возможно, для устаревшей поддержки или по любой другой странной причине). Эти решения не подходят для моего случая из-за среды плагинов. Кроме того, они часто требуют:
- Вставка сборки в GAC, для которой AFAIK потребуется административное право на компьютере конечного пользователя, которого у меня нет;
- Контроль надфайл конфигурации базового приложения (* .exe.config), которого у меня нет.
Может кто-нибудь помочь мне найти способ использовать более новую версию библиотеки, которая также используется, какболее старая версия, другим плагином, с учетом ограничений, которые я описал ?