BadImageFormatException при использовании Oracle Client 64 бит и Visual Studio 2010!
20 Data-Base [2011-05-03 16:11:00]
Один из членов нашей команды разработчиков получил сообщение об ошибке
Попытка загрузить клиентские библиотеки oracle бросила BadImageFormatException
Кажется,
Эта проблема возникает при работе в режиме 64 бит с установленными 32-битными клиентскими компонентами Oracle.
Но именно я настроил систему - вот спецификации:
- 64-разрядная версия Windows 7
- Visual Studio 2010 Premium
- Oracle Client 11g R2 64Bit установлен как Runtime
Любые мысли?
windows-7 windows-7-x64 oracle11g visual-studio-2010 oracleclient
10 ответов
9 Решение HaggardPete [2011-05-16 19:16:00]
Я видел это несколько раз недавно при запуске Visual studio на 64Bit O/S. Простым рабочим столом является установка 32-битного клиента на 64-разрядную машину разработки.
С уважением, Пит
19 Atilla Ozgur [2011-12-15 16:49:00]
Прошу прощения за добавление второго ответа, но если у вас установлены 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 бит для других приложений.
9 Keith Ketterer [2013-10-14 16:46:00]
У меня была такая же ошибка после обновления до Windows 7. Я разрешил ее, изменив целевой объект платформы на x86 на вкладке "Сборка" на странице "Свойства" в Visual Studio
5 codemonkey [2015-04-29 22:15:00]
Те же проблемы, с которыми вы можете столкнуться также в Visual Studio 2013 и 64-битном Oracle Client (11 и 12 версий). Мое решение:
a) Настольный проект. Свойства проектa > Сборкa > отключить флажок "Предпочитаю 32-бит".
b) проект или веб-сайт ASP.NET. Главное меню > ИНСТРУМЕНТЫ > Функции > Проект и решения > Веб-проекты > Включите флажок "Использовать 64-битную версию IIS Express для веб-сайтов и проектов".
3 SharpCoder [2013-03-08 14:00:00]
Я изменил поддержку 32-битной поддержки на ЛОЖЬ в моем пуле приложений в IIS7. Это сработало для меня. Мне было легко. Приветствия:)
0 Nawaf [2013-02-17 20:51:00]
Быстрое и простое решение этой проблемы вы должны выполнить только следующие шаги:
- Установите ODACv11.2021Xcopy_x64, запустив файл install.bat, затем проверьте "c:\oracle" как созданный путь.
- скопируйте папку конфигурации сети [, содержащую папку администратора с файлом tnsnames.ora] в oracle 32bit, чтобы "c:\oracle" .
- Добавлен путь "c:\oracle" к переменной среды PATH.
пользоваться
С наилучшими пожеланиями, Eng. Наваф Х. Бин Талеб.
0 thabet [2013-06-27 14:15:00]
У меня такое же исключение, и я узнал, что это произошло, когда я обновил версию MVC выше 2.0., в моем случае MVC 4.0.
Создание нового проекта в MVC 2.0 решило проблему.
0 Muru Bakthavachalam [2015-03-29 01:47:00]
Простое решение: работает для меня. попробуйте это.
Я потратил почти 4 часа, чтобы найти решение проблемы с BadImageFormatException.
Сценарий: VS 2012, я пытался впервые добавить модель сущности в базу данных Oracle. Я знал, что есть два способа добавить модель для базы данных оракула:
- Подключить базу данных oracle с использованием сервера (где будет создана строка соединения и которая может использоваться при добавлении модели)
- Добавить модель с помощью существующей строки подключения (созданной в шаге 1).
Но я был поражен на первом шаге с предупреждением BadImageFormatException, и я нашел решение. Разрешение:
- Следуйте инструкциям, приведенным в ссылке, и завершите установку клиента oracle http://www.oracle.com/technetwork/topics/dotnet/whatsnew/vs2012welcome-1835382.html
- После успешного завершения установки, затем выполните простой шаг, т.е. добавьте модель в проект. здесь используйте существующую строку соединения из раскрывающегося списка и укажите userid/pwd.
тогда вы готовы использовать модель:)
0 Hüseyin Yağlı [2013-07-18 14:01:00]
Если вы хотите использовать 64 бит, см. мой ответ здесь:
64-битная конфигурация Oracle DataAccess
Если вы довольны 32-разрядным, просто установите 32-разрядную версию Oracle Data Access Components. Поскольку сервер разработки Visual Studio 32 бит, у вас не возникнут проблемы.
-1 Rick [2017-02-23 17:11:00]
У меня была такая же проблема, и это решение, с которым работал Muru, работало со мной:
http://www.oracle.com/technetwork/topics/dotnet/whatsnew/vs2012welcome-1835382.html
Просто установите ODAC и