Ошибка System.Data.OracleClient требует клиентского программного обеспечения Oracle версии 8.1.7 или выше при установке программы установки

Я установил настольное приложение, которое подключается к удаленной базе данных Oracle 10g. Когда я устанавливаю программу установки на удаленном компьютере и запускаю свое приложение, я получаю следующую ошибку:

system.data.oracleclient requires oracle client software version 8.1.7 or greater

Он хорошо работает на моей машине разработки.


person Volatil3    schedule 14.10.2013    source источник
comment
Похоже, вам нужно убедиться, что на удаленном компьютере, на котором вы устанавливаете приложение, установлена ​​текущая версия среды выполнения клиента Oracle!   -  person paulsm4    schedule 14.10.2013


Ответы (7)


Сообщение об ошибке говорит само за себя: вашему приложению нужен клиент Oracle, установленный на машине, на которой оно работает. На вашем компьютере разработки он уже есть. Убедитесь, что он есть на вашем целевом ПК.

Изменить: пространство имен System.Data.OracleClient устарело. Убедитесь, что вы используете драйвер, родной для вашей системы баз данных, это будет ODP. NET от Oracle.

person nvoigt    schedule 14.10.2013
comment
Но я не включил его сборку в Setup. Почему до сих пор говорят? - person Volatil3; 14.10.2013
comment
Я не понимаю твоего вопроса. Ваше приложение ЕСТЬ на целевом ПК. Ваше приложение выдает ошибку о необходимости установки Oracle Client. Очевидно, что клиент Oracle НЕТ на целевом ПК. Вам нужно будет это изменить. - person nvoigt; 14.10.2013
comment
Я встроил требуемую сборку в свою программу установки, и теперь она также скопирована на клиентском компьютере, но по-прежнему выдает ошибку. Неужели только копирование не работает и мне придется не всю эту сборку тоже? - person Volatil3; 14.10.2013
comment
Какую сборку копировал? Клиент Oracle от Oracle? Мы не говорим здесь о System.Data.OracleClient, мы говорим об установке Oracle Client, установщик, предоставляемый Oracle Corporation. - person nvoigt; 14.10.2013
comment
Только System.Data.OracleClient, на который есть ссылка в моем проекте - person Volatil3; 14.10.2013
comment
Я не уверен, существует ли языковой барьер, потому что сообщение об ошибке написано на простом английском языке, и я пытаюсь сказать вам то же самое снова и снова, но разными словами: целевой машине нужен установленный клиент Oracle . НЕ System.Data.OracleClient, а настоящая вещь от Oracle, которую вы также установили на свой компьютер разработчика. - person nvoigt; 14.10.2013
comment
Я понял вас, но мой главный вопрос был в том, есть ли способ встроить его, а не устанавливать файл (ы) как отдельную установку на клиентской машине ?? - person Volatil3; 14.10.2013
comment
Может быть, вы могли бы задать вопрос прямо в новом посте. Прежде чем вы это сделаете, подумайте о том, чтобы прочитать уже существующие вопросы и ответы, которые связаны между собой (см. Боковую панель справа), чтобы избежать дублирования. - person nvoigt; 14.10.2013
comment
На самом деле то, что вы предложили, сработало, хотя я не считал это возможным - person Volatil3; 14.10.2013

Это проблема безопасности, поэтому для ее устранения просто выполните следующие действия:

  1. Перейдите в папку Oracle Client.
  2. Щелкните правой кнопкой мыши папку.
  3. На вкладке безопасности добавьте «Прошедшие проверку пользователи» и дайте этой учетной записи разрешение на чтение и выполнение.
  4. Примените эту безопасность для всех папок, подпапок и файлов (ВАЖНО).
  5. Не забудьте перезагрузить машину; если вы забыли это сделать, вы все равно столкнетесь с той же проблемой, если не перезагрузите компьютер.

http://blogs.msdn.com/b/fabdulwahab/archive/2011/11/13/system-data-oracleclient-requires-oracle-client-software-version-8-1-7-or-greater.aspx

person Javysk    schedule 31.07.2015
comment
У меня была такая же проблема с виртуальной машиной, я внес изменения, и она отлично работала без перезагрузки! - person Williew; 05.10.2015

Установите Nuget для Oracle.ManagedDataAccess

Убедитесь, что вы используете заголовок для Oracle:

с использованием Oracle.ManagedDataAccess.Client;

Это сработало для меня.

person yoga Asafe    schedule 24.02.2021
comment
это сработало в моем случае. Intellisense добавляла другую зависимость оракула - person causita; 21.06.2021

На удаленном компьютере System.Data.OracleClient требуется доступ к некоторым библиотекам oracle, которые не являются частью .Net. Решения:

  • Установите Oracle Client и добавьте местоположение корзины в переменную среды Path для Windows ИЛИ
  • Скопируйте oraociicus10.dll (версия Basic-Lite) или aociei10.dll (базовая версия), oci.dll, orannzsbb10.dll и oraocci10.dll из установочной папки клиента oracle в папку bin приложения, чтобы приложение могло найти необходимую dll

На вашем локальном компьютере, скорее всего, путь к Oracle Client уже добавлен в переменную среды Path, где требуемые dll доступны для приложения, но не на удаленном компьютере.

person techExplorer    schedule 15.12.2015

Если вам нужно использовать старый клиент, вот мой опыт.

У нас 32-битный сервер, поэтому на машинах для разработки работает 32-битный клиент. Запускаем установку 11.1, 11.2 выдает ошибку. После того, как вы установили версию 11.2, вам нужно вручную удалить файлы Oracle.Web.dll и System.Data.OracleClient.dll из %windir%\Microsoft.NET\Framework\v2.0.50727, переустановить 11.1, а затем зарегистрировать библиотеки DLL с помощью gacutil.exe.

Это устранило проблему с моими системами.

person Robert Dennis    schedule 25.11.2013

Перейдите в C: \ app \ insolution \ product \ 11.2.0 \ client_1 \ BIN и найдите oci.dll. Щелкните его правой кнопкой мыши -> Свойства -> На вкладке «Безопасность» нажмите «Правка» -> Затем нажмите кнопку «Добавить» -> Здесь добавьте двух новых пользователей с именами IUSR и IIS_IUSRS и предоставьте им полный контроль. Вот и все.

person Abdul Qader Siddiqui    schedule 27.02.2017

После установки Oracle Client 11.02.04 перезагрузите сервер и убедитесь, что ПОЛЬЗОВАТЕЛИ (локальный компьютер) добавлены с полным доступом в корневую папку, например, для WWW.

Протестировал, заработало.

person Bobby Khan    schedule 15.03.2018