Запустите Oracle Client в 32-битном режиме на 64-битной машине

Я только что перешел с 32-разрядного рабочего стола Windows 7 на 64-разрядный ноутбук Windows 7. У нас есть программа на C #, которую мы разрабатываем и которая содержит около 60 проектов в рамках решения. Я продолжаю получать следующую ошибку при попытке построить:

Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed

Очевидно, ошибка не требует объяснений, и я пытаюсь загрузить все свое решение в 32-битном режиме. Я прошел каждый проект и установил целевую платформу на x86, но все еще получаю эту ошибку. Я искал в Google и видел множество разных подходов, но, похоже, не могу решить эту проблему. Каков наилучший способ обеспечить выполнение моего проекта в 32-разрядном режиме на 64-разрядной машине?

Я использую Visual Studio 2008. В настоящее время я рассматриваю возможность перехода на 32-разрядную версию, но очень хочу избежать этого.

 Belogix14 мая 2013 г., 13:09
Я обнаружил, что мне нужно было установить 32-битный клиент Oracle (с помощью установщика), чтобы это работало, хотя я работал на 64-битном компьютере.
 Belogix14 мая 2013 г., 14:02
@ Джозеф - Вы должны быть в состоянии загрузить клиент из Oracle. Это то, что я сделал. Также я'Мы добавили ответ, который вы можете сначала попробовать, который объясняет, как установить 32- или 64-разрядный режим IIS.
 Belogix15 мая 2013 г., 10:10
@ Джозеф - Отлично, рад, что смог помочь. Я'Мы расширили мой ответ ниже. Не могли бы вы пометить как правильный, чтобы другим, имеющим эти проблемы, было легче их найти? Я знаю, что потратил впустую два дня, когда я столкнулся с этим и не нашел ресурсов онлайн!
 Matthew Watson14 мая 2013 г., 10:44
Это'не ясно - вы получаете эту ошибку во время процесса сборки или при запуске приложения?
 Belogix14 мая 2013 г., 14:06
И когда вы устанавливаете нене забудьте добавить компоненты .NET.
 Belogix14 мая 2013 г., 12:17
Какой клиент Oracle вы используете (32-битный или 64-битный)?
 Belogix16 мая 2013 г., 10:04
Я не пробовал с пакетом служб SSIS извините. Это точно такое же сообщение? Может быть стоит опубликовать новый вопрос?
 Joseph14 мая 2013 г., 21:13
@Belogix Это сделало работу! После двух дней попыток каждой комбинации всего, что я мог придумать, этоисправили это. Я должен вам, спасибо!
 Joseph14 мая 2013 г., 10:45
Сборка завершается успешно, но при загрузке первой страницыЭто веб-приложение), которое выдает эту ошибку при попытке подключения к БД Oracle.
 Joseph14 мая 2013 г., 12:42
У меня есть оба в наличии. Но я думаю, что предпочтение будет 32-битнымс тем, что раньше работало.
 Joseph15 мая 2013 г., 20:50
@Belogix Теперь у меня точно такая же проблема при редактировании пакета служб SSIS в Visual Studio. Есть идеи?
 Joseph14 мая 2013 г., 13:37
Спасибо за чаевые. Я неЯ действительно много знаю об Oracle. Могу ли я просто загрузить клиент с веб-сайта и добавить в него файл tnsnames, и он должен работать? Я'В прошлом мы когда-либо использовали уже настроенный клиент на общем диске.

Ответы на вопрос(5)

Решение Вопроса

что вам нужно установить 32-битный клиент Oracle (вы можетескачать установщик с их сайта), даже если вы работаете на 64-битной машине.

Кроме того, во время обсуждений люди говорили о 32-битном режиме и т. Д. Именно так вы можете проверить / установить это для размещенного в IIS 7 приложения. Ты не долженМне не нужно это менять, но я добавил сюда для полноты / будущей ссылки.

Запустите IIS 7 и разверните узел имени сервера.Нажмите наПулы приложений узел и найдите пул приложения, которое вы используете.На правой панели нажмитеРасширенные настройки...Во всплывающем окне появляется галочкаВключенные 32-битные приложения установка, которая является третьим вариантом сверху.

чтобы он работал только как 32-разрядный. Вы можете сделать это в Visual Studio - просто измените цель платформы с "Любой процессор " к "x86" .https://msdn.microsoft.com/en-us/library/ms185328.aspx

. Я думаю, что все сообщения полезны, но у меня была одна недостающая часть. Я не't иметь экземпляр Microsoft ODBC для Oracle для пользовательского DSN или системного DSN. Я'я работаю на машине с Windows 8. Поэтому мне пришлось пойти в общий поиск Windows и ввести ODBC и открыть ODBC Data Source Administrator (32-разрядный). Проверьте, есть ли у вас установка Microsoft ODBC для Oracle на вкладке «Пользовательский DSN» или «Системный DSN». Если нет, нажмите Добавить и выберите Microsoft ODBC для Oracle. Заполните информацию для вашего источника данных, который вы пытаетесь нажать, и нажмите ОК. Обязательно перезагрузите компьютер, и это то, что, наконец, сработало для меня. Надеюсь, это поможет некоторым из вас.

чтобы он работал только как 32-разрядный. Вы можете сделать это в Visual Studio - просто изменитеЦель платформы от "Любой процессор " к "x86" .

Если это невозможно, используйте corflags.exe, который заставляет существующий exe-файл быть 32-разрядным приложением.

 Piotr Stapp14 мая 2013 г., 13:23
Просто измените WebDev на IISExpress или IIS.
 Piotr Stapp14 мая 2013 г., 11:12
Я просто прочитал в комментариях, что вы используете веб-приложение. Вы можете установить это в IIS:help.webcontrolcenter.com/KB/a1114/...I»
 Joseph14 мая 2013 г., 11:33
используя сборку в ASP.NET Development Server в Visual Studio. Как бы я установить это в этом?
 Joseph14 мая 2013 г., 10:50
Я неу меня есть x86 в выпадающем списке на панели инструментов, так что я думаю,Придется использовать corflags.exe. Со страницы, с которой вы любезно связали меня, я полагаю, мне нужно бежатьСборка CorFlags.exe / 32BIT + » Какова именно стоимость сборки? Благодарю.
 Piotr Stapp14 мая 2013 г., 12:41
 Joseph14 мая 2013 г., 13:09
Я смотрел на это вчера, но я не могНа этой странице нет ответов, к сожалению. То, как я это прочитал, это то, что процесс выполняется в 32 битах? В каком случае, почему я получаю вышеуказанную ошибку?
 Piotr Stapp14 мая 2013 г., 11:08
сборка - ваш exe файл. В visual studio кликните правой кнопкой мыши на свой проект, выберите свойства. выберите вкладку Build и на ней у вас будет цель Platform. В этом комбо у вас есть Любой процессор, x86, x64

но все равно выдает ту же ошибку. Итак, я проанализировал, что в моем приложении перейдите в приложение правой кнопкой мыши, перейдите на ->свойства->Веб-вкладку и снимите флажок "Используйте IIS Express " вариант, если вы используете локальный веб-сервер IIS. Проблема была решена.

Ваш ответ на вопрос