Можно ли заменить ссылку на сборку со строгим именем «слабой» ссылкой?

Я пишу инструмент .NET, для которого требуется библиотека SMO SQL Server. Меня не волнует, если это версия с Server 2005 (9.0), 2008 (10.0) или 2008 R2 (вероятно 10.5, не проверял). Библиотека SMO устанавливается вместе с SQL Server, поэтому я могу с уверенностью предположить, что в любой системе с установленным SQL Server также доступна некоторая версия библиотеки SMO.

К сожалению, библиотеки SMO ​​имеют строгое имя: если я добавлю ссылка на SMO 9.0 в моем проекте, он не сработает ( FileNotFoundException ), если в системе клиента присутствует только SMO 10.0, и наоборот.

Есть ли способ сообщить компилятору, что мне подходит любая версия библиотеки? Или мне действительно нужно распространять 3 идентичные версии моего инструмента, каждая из которых скомпилирована для другой версии SMO?


Отказ от ответственности: Я знаю, что библиотеки SMO ​​(и библиотеки, необходимые для библиотек SMO) могут быть распространены. Но есть большая разница между (а) одним тонким автономным EXE размером 100 КБ и (б) полнофункциональным установочным пакетом, который устанавливает целый набор необходимых компонентов.

Отказ от ответственности 2: мне известны следующие дубликаты:

Однако предлагаемые решения не подходят. В вопросе 1 разработчик имеет контроль над указанной DLL (чего у меня нет); в вопросе 2 разработчик контролирует целевые системы (чего я тоже не имею).

17
задан Heinzi 17 October 2018 в 12:35
поделиться