System.Data.OracleClient в Windows 7 64 - PullRequest
2 голосов
/ 10 марта 2010

Я пытаюсь получить доступ к базе данных Oracle из программы, которую пишу на Windows 7 64bit. Всякий раз, когда он инициализирует клиента, я получаю BadImageFormatException жалобу, что пытаюсь использовать 32-битный клиент в 64-битной среде. Я пытался скомпилировать программу любым способом (любой процессор, 32, 64 бит), но это не решило проблему. Любая помощь?

Ответы [ 2 ]

1 голос
/ 17 февраля 2012

Вам необходимо настроить свой проект для нацеливания на .NET 4 Framework, перейдя на Project-Designer -> Target Framework.

Затем вам нужно удалить старую Oracle dll и использовать новую 64-битную версию Oracle dll, включенную в .NET 4 Framework.

1 голос
/ 10 марта 2010

Я бы предположил, что сообщение об ошибке верное. У вас есть 32-битная Oracle DLL, которую вы используете из 64-х процессов. Oracle DLL, вероятно, выполняет некоторое взаимодействие с собственным кодом, что может потребовать, чтобы он зависел от процессора.

Есть несколько способов решить эту проблему.

Вариант 1: Получить 64-битные DLL-библиотеки Oracle.

Вариант 2: Убедитесь, что ваш процесс 32-битный. EXE-файлы .NET, помеченные для AnyCPU, запустят 64-битный процесс в 64-битной операционной системе. Но если вы пометите свой EXE-файл для x86, то он должен работать. Для веб-приложений необходимо установить 32-битный флаг где-нибудь в IIS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...