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 в первый раз. Я знал, что есть два шага, чтобы добавить модель для базы данных оракула:
- Подключите базу данных Oracle, используя сервер исследовать (где будет создана строка подключения и которая может быть использована при добавлении модели)
- Добавить модель, используя существующую строку подключения (созданную в шаге 1).
Но на первом шаге меня поразило предупреждение BadImageFormatException, и я нашел решение.Разрешение:
- Следуйте инструкциям, приведенным в ссылке, и завершите установку клиента oracle http://www.oracle.com/technetwork/topics/dotnet/whatsnew/vs2012welcome-1835382.html
- После успешного завершения установки, простой шаг, т.е. добавить модель в проект. здесь используйте существующую строку подключения из выпадающего списка и укажите ID пользователя /pwd.
тогда вы готовы использовать модель:)
Для быстрого и простого решения этой проблемы вам необходимо выполнить только следующие шаги:
- Установите ODACv11.2021Xcopy_x64, запустите файл install.bat, затем проверьте "c:\oracle" как созданный путь.
- скопируйте вашу папку конфигурации сети [которая содержит папку администратора с файлом tnsnames.ora] в oracle 32bit в "c:\oracle".
- Добавлен путь "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 и