У меня есть 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 ссылается на два других проекта.
После компиляции бен/отладки папка RefEL содержит «b03f» («реальный») версию DLL,, в то время как бен/Отладочная RefGeodatabase и RefBoth содержат версию DLL, с открытый ключ, начинающийся с «196b» - так же, как и dll Miner. Мне кажется, они перекомпилировали корпоративную библиотеку (и, возможно, что-то изменили).
Во время выполнения (в моем реальном решении, а не в этом фиктивном решении) мои «оба» проекта называет проект «EL», которому нужна DLL «b03f», не может найти его и сбой.
Что я должен делать? Возможно, если я зарегистрирую библиотеки DLL Enterprise Library в GAC, они будут найдены во время выполнения. Есть ли другое решение, которое не требует от меня установки entlib на моем целевом компьютере?
Какие версии Visual Studio вы используете? Используете ли вы ссылки на проекты или ссылки на файлы? Как выглядят HintPaths в файле проекта? Это нормально, когда библиотеки DLL копируются, как вы описываете. –
Я использую vs2005 sp1 (Также бывает без установки sp). проект A ссылается на EL dll в виде файла (внутри папки lib) и ** не ** из GAC. Проект B ссылается на Miner.Geodatabase.dll (ver 9.30.2.5168) через GAC, и после компиляции получает странную EL DLL с ней. Я не понимаю, откуда эта dll. Но проекты, которые ссылаются как на A, так и на B, получают эту странную dll, а A не работает во время выполнения. –