BadImageFormatException - PullRequest
       39

BadImageFormatException

1 голос
/ 03 июля 2011

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

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

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

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

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

Ответы [ 3 ]

1 голос
/ 21 июля 2011

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

0 голосов
/ 09 марта 2013

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

0 голосов
/ 04 декабря 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...