Подтвердить что ты не робот

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

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

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

Кажется,

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

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

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

Любые мысли?

4b9b3361

Ответ 1

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

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

Ответ 2

Прошу прощения за добавление второго ответа, но если у вас установлены 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"

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

Ответ 3

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

Ответ 4

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

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

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

Ответ 5

Я изменил поддержку 32-битной поддержки на ЛОЖЬ в моем пуле приложений в IIS7. Это сработало для меня. Мне было легко. Приветствия:)

Ответ 6

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

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

пользоваться

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

Ответ 7

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

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

Ответ 8

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

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

Ответ 9

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

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

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

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

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

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

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