Загрузить любую версию статически связанной сборки.NET
Я работаю над инструментом, который использует сборки.NET из другого продукта. На несколько сборок статически ссылаются в моем проекте (используя "Добавить ссылку"), потому что мне нужно использовать эти типы в моем коде. Но я загружаю много других сборок динамически из каталога установки продукта, используя отражение для динамического создания объектов, которые мне нужны.
Я не хочу перекомпилировать и публиковать отдельную версию своего проекта для каждой возможной версии продукта, от которого я зависит. Некоторая версия необходимых мне сборок обязательно будет присутствовать в каталоге установки приложения, поэтому я бы хотел использовать любую версию сборки, которая будет установлена. Но, вероятно, это будет не та же версия, что и сборка, которую я использовал при сборке инструмента. (Стратегия управления версиями продукта такова, что все сборки в продукте имеют один и тот же номер версии, который меняется в каждом выпуске, даже если конкретные сборки, в которых мне нужны статические ссылки, не изменились со времени предыдущего выпуска или поддерживают 100% API мне нужны).
Можно ли этого добиться?
Перенаправления версии сборки позволяют мне загружать определенную версию сборки, когда запрашивается другая версия этой сборки. Моя ситуация противоположна этому; Я хочу загрузить любую версию, которая присутствует.
1 ответ
Вы можете привязаться к событию AppDomain.CurrentDomain.AssmeblyResolve и обработать разрешение самостоятельно.