У меня есть проект dll, который ссылается на Microsoft.Practices.EnterpriseLibrary.Common.dll
(= " dll ") из моего установочного каталога Microsoft Enterprise Library 3.1 . У него есть открытый ключ, который начинается с "b03f".
У меня есть другой проект, который ссылается на Miner.Geodatabase.dll
версия 9.30.2.5168 (он показывает 9.2.0.0 в папке GAC). DLL-файл Miner имеет открытый ключ, начинающийся с «196b».
Третий DLL ссылается на два других.
Вот простое решение vs2005 с вышеуказанными проектами
ELTest.rar -
1. RefEL, просто ссылается на dll из папки lib.
2. RefGeodatabse, просто ссылается на Miner.Geodatabase.dll
из GAC.
3. RefBoth, ссылается на два других проекта.
После компиляции папка bin / debug в RefEL содержит «b03f» («настоящую») версию dll , в то время как bin / debug в RefGeodatabase и RefBoth содержат версию dll с открытым ключом, начинающимся с "196b" - то же самое, что и dll Miner. Мне кажется, что они перекомпилировали корпоративную библиотеку (и, возможно, что-то изменили).
Во время выполнения (в моем реальном решении, а не в этом фиктивном решении) мои "оба" проекта вызывают проект "EL", которому требуется dll "b03f", не удается найти его и происходит сбой.
Что я должен делать? Возможно, если я зарегистрирую библиотеки Enterprise Library в GAC, они будут найдены во время выполнения. Есть ли другое решение, которое не требует от меня установки entlib на целевой компьютер?