BadImageFormatException при использовании Oracle Client 64 bit и Visual Studio 2010!

Один из членов нашей команды разработчиков получил ошибку

Попытка загрузки клиентских библиотек оракула выкинула BadImageFormatException

Похоже на то

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

Но именно я настроил систему - вот технические характеристики:

  • Windows 7 64-битная
  • Visual Studio 2010 Premium
  • Oracle Client 11g R2 64Bit установлен как среда выполнения

Какие-нибудь мысли?

10 ответов

Решение

Я видел это пару раз в последнее время при работе Visual Studio на 64-битной операционной системе. Простой обходной путь - установить 32-битный клиент на вашу 64-битную машину разработки.

С уважением, Пит

Прошу прощения за добавление второго ответа, но если на одном компьютере установлены 64-битные и 32-битные клиенты, вы также можете столкнуться с этой проблемой.

Два клиента установлены

C:\oracle\product\11.2.0\client32Bit
C:\oracle\product\11.2.0\client64Bit

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

 echo %PATH%
 XXXX;C:\oracle\product\11.2.0\client64Bit\BIN;XXX

Поскольку мой 64-битный клиент Oracle является первым в PATH, VS.NET пытается использовать его для соединений Oracle и выдает исключение Bad Image Exception.

  set PATH=C:\oracle\product\11.2.0\client32Bit\BIN;%PATH%
  REM Visual Studio 2008
  "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"
  REM Visual Studio 2010
  "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe"

После этого вы можете подключить оракула. Конечно, вы можете сначала поставить 32-битный клиент в путь, но я предпочитаю ставить 64-битный клиент перед 32-битным для других приложений.

С такой же проблемой вы можете столкнуться и в Visual Studio 2013 и 64-битном Oracle Client (версии 11 и 12). Мое решение:

а) Настольный проект. Свойства проекта> Сборка> отключить флажок "Предпочитать 32-битный".

б) ASP.NET проект или веб-сайт. Главное меню> ИНСТРУМЕНТЫ> Параметры> Проект и решения> Веб-проекты> установить флажок "Использовать 64-разрядную версию IIS Express для веб-сайтов и проектов".

У меня была та же ошибка после обновления до Windows 7. Я исправил ее, изменив целевой объект Platform на x86 на вкладке Build на странице Properties в Visual Studio.

Я изменил 32-битную включенную поддержку на FALSE в моем пуле приложений в IIS7. Это сработало для меня. Мне было легко. Ура:)

Если вы запускаете приложение через Visual Studio, установите флажок "Использовать 64-разрядную версию IIS Express для веб-сайтов и проектов", установив флажок "Веб-проекты" в разделе "Проекты и решения" в Инструменты-> Меню параметров в Visual Studio.

Если вы хотите использовать 64 бит, смотрите мой ответ здесь:
64-битная конфигурация Oracle DataAccess

Если вы довольны 32-битной версией, просто установите 32-битную версию Oracle Data Access Components. Поскольку сервер разработки Visual Studio является 32-разрядным, у вас не возникнет никаких проблем.

Простое решение: у меня работает. попробуй это.

Я потратил почти 4 часа, чтобы найти решение проблемы BadImageFormatException.

Сценарий: VS 2012, я пытался добавить модель сущностей в базу данных Oracle в первый раз. Я знал, что есть два шага, чтобы добавить модель для базы данных оракула:

  1. Подключите базу данных Oracle, используя сервер исследовать (где будет создана строка подключения и которая может быть использована при добавлении модели)
  2. Добавить модель, используя существующую строку подключения (созданную в шаге 1).

Но на первом шаге меня поразило предупреждение BadImageFormatException, и я нашел решение.Разрешение:

  1. Следуйте инструкциям, приведенным в ссылке, и завершите установку клиента oracle http://www.oracle.com/technetwork/topics/dotnet/whatsnew/vs2012welcome-1835382.html
  2. После успешного завершения установки, простой шаг, т.е. добавить модель в проект. здесь используйте существующую строку подключения из выпадающего списка и укажите ID пользователя /pwd.

тогда вы готовы использовать модель:)

Для быстрого и простого решения этой проблемы вам необходимо выполнить только следующие шаги:

  1. Установите ODACv11.2021Xcopy_x64, запустите файл install.bat, затем проверьте "c:\oracle" как созданный путь.
  2. скопируйте вашу папку конфигурации сети [которая содержит папку администратора с файлом tnsnames.ora] в oracle 32bit в "c:\oracle".
  3. Добавлен путь "c:\oracle" к переменной среды PATH.

наслаждаться

С наилучшими пожеланиями, Eng. Наваф Х. Бин Талеб.

Я получил то же исключение и обнаружил, что это произошло при обновлении до версии MVC выше 2.0. В моем случае это MVC 4.0.

Создание нового проекта в MVC 2.0 решило проблему.

У меня была та же проблема, и то решение, которым поделился Муру, сработало для меня:

http://www.oracle.com/technetwork/topics/dotnet/whatsnew/vs2012welcome-1835382.html

Просто установите ODAC и

Другие вопросы по тегам