2010-03-10 2 views
2

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

+0

Вы ссылаетесь на 64-разрядную версию OCI? –

ответ

1

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

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

Вариант 1: Получить 64 bit Oracle DLLs.

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

1

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

Затем вам нужно удалить старый Oracle dll и использовать новый 64-Bit-Version из Oracle dll, который входит в рамки .NET 4.

Смежные вопросы