BadImageFormatException при использовании клиента Oracle 64 бит и Visual Studio 2010!

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

попытка загрузить клиентские библиотеки oracle бросил BadImageFormatException

кажется

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

но это я настроил систему-вот спецификации:

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

какие мысли?

10 ответов


Я видел это пару раз в последнее время при запуске Visual studio на 64-битном O/S. простой workround заключается в установке 32-битного клиента на 64-битной машине разработки.

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


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

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

C:\oracle\product.2.0\client32Bit
C:\oracle\product.2.0\client64Bit

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

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

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

  set PATH=C:\oracle\product.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"

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


У меня была такая же ошибка после обновления до Windows 7. Я решил это, изменив целевую платформу на x86 на вкладке "сборка" страницы "свойства" в Visual Studio


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

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

b) ASP.NET проект или веб-сайт. главное меню > Инструменты > Параметры > проект и решения > веб-проекты > включить "использовать 64-разрядную версию IIS Express для веб-сайтов и проектов" флажок.


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


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

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

наслаждайтесь

лучшие С уважением, Анг. Наваф Х. Бин Талеб.


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

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


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

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


простое решение: работает для меня. попробовать это.

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

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

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

но я был поражен на шаге 1 с предупреждением BadImageFormatException, и я нашел решение.


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

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

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