Бадмажеформатексцептион

У меня есть VS 2008 в 64-битной системе Win 7 Professional, а база данных - Oracle 11g r2, установленная на том же компьютере.

В Мастере настройки источника данных -> Источник данных нового подключения: База данных Oracle (клиент Oracle). Когда я нажимаю «Проверить подключение» после ввода имени службы, имени пользователя и пароля, я получаю следующую ошибку:

Попытка загрузить клиентские библиотеки Oracle вызвала исключение BadImageFormatException. Эта проблема возникает при работе в 64-битном режиме с установленными 32-битными клиентскими компонентами Oracle.

-- У меня не установлен клиент oracle, потому что в этом случае нет необходимости, у меня такая же настройка на моем ноутбуке Win 7 32bit Oracle 11g r2 32bit и все работает нормально.

Пожалуйста, дайте мне знать, если у вас есть решение этой проблемы.


person Tahir T    schedule 03.07.2011    source источник


Ответы (3)


Я не могу сказать из вашего вопроса, насколько вы понимаете об этом. Поскольку никто не предложил ответ в течение 18 дней, я внесу свою сумму в 0,02 доллара. Вы работаете под 64-битным приложением, поэтому оно хочет загрузить 64-битную .DLL. Я ничего не знаю об Oracle, но я предполагаю, что клиентские .dll написаны в неуправляемой среде и не могут поддерживать концепцию «любой процессор», которую поддерживает управляемое приложение. У вас есть несколько вариантов. 1. Загрузите 64-разрядную версию .DLL клиента Oracle на свой 64-разрядный ноутбук, если они существуют. 2. Не используйте функцию тестового подключения мастера. Вы можете настроить приложение, которое вы создаете, для 32-битной машины, и когда ваше приложение запустится, у вас не будет этой проблемы (см. эту запись в блоге для получения дополнительной информации о таргетинге)

person Tod    schedule 21.07.2011

VS 2008 — это приложение x86, но когда вы пытаетесь настроить новый источник данных подключения, вы используете драйвер x64.

Вы можете доказать это, используя такой инструмент, как procmon.exe. Если вы это сделаете, вы можете заметить, что после запуска процесса Test Connection он попытается загрузить некоторые драйверы x64, отсюда и исключение BadImageFormatException.

Решение состоит в том, чтобы установить драйверы x86, необходимые для Visual Studio.

person aledeniz    schedule 04.12.2012

Просто настройте PlatformTarget в свойствах сборки ваших проектов, и все должно работать.

person lame_coder    schedule 09.03.2013