Невозможно загрузить DLL «OraOps10.dll» - PullRequest
6 голосов
/ 31 декабря 2011

Я столкнулся с особой проблемой.Я занимаюсь разработкой приложения для Windows, которое подключается к базе данных Oracle.

Для первоначального тестирования я создал установщик и протестировал его на разных машинах.На каждой машине установлен Oracle Client, и я не вижу проблем с запуском приложения.

Но когда я делюсь этим установщиком с клиентом, он получает сообщение об ошибке «Невозможно загрузить DLL OraOps10.dll».Когда его спросили, он упомянул и показал, что клиент Oracle установлен на его компьютере, и он может запускать другие приложения C #, которые подключаются к базам данных Oracle.

Я не понимаю, почему мое приложение только получает ошибку выше.Я даже пытался поделиться предложениями на https://forums.oracle.com/forums/thread.jspa?threadID=67364, но все же не повезло.

Я даже пытался копировать исполняемые файлы и библиотеки DLL вручную на компьютере клиента.Но все еще сталкиваются с той же проблемой.

Поэтому, пожалуйста, помогите мне в том, что еще я могу сделать.

Спасибо и наилучшими пожеланиями
Судхакар Чавали

PS:

Я использую операционную систему Windows XP, и клиент также использует ту же операционную систему.Обе машины имеют только 32-битную ОС типа.

Это место, где установлен клиент клиента Oracle: C: \ oracle \ product \ 10.2.0 \ client_1 \ bin, и та же версия в моем случае.

Мы оба используем Oracle 10g.

Ответы [ 4 ]

10 голосов
/ 31 декабря 2011

Драйверы ODP.NET в основном состоят из двух частей.Часть .NET и нативная часть OCI.Сообщение об ошибке указывает на то, что часть .NET работает, но не может загрузить собственную часть.

Вероятно, причиной этой проблемы являются:

  • Несоответствие версий между.Чистая часть и родная часть.Обратите внимание, что OraOps10.dll принадлежит Oracle 10g.Таким образом, часть .NET, очевидно, относится к версии 10, и она ищет встроенную часть для версии 10.

  • Может быть несоответствие битов.Если часть .NET работает в 64-битном режиме, она будет искать 64-битные собственные библиотеки OCI.В 64-разрядной системе диспетчер задач может сообщить вам, является ли процесс 32-разрядным или 64-разрядным.32-битные процессы помечены *32.

  • Реестр может не содержать правильный путь к собственным DLL.ODP.NET извлечет значение HKEY_LOCAL_MACHINE\Software\Oracle\ODP.NET\2.xxx.x.x\DllPath, чтобы найти библиотеки OCI.Обратите внимание, что реестр разделен на 32 и 64-битную часть.В зависимости от процесса поиска в реестре, он получит разные значения.

Лучше всего, если вы добавите всю доступную информацию к своему вопросу.Это 64-битная операционная система?Это 32 или 64-битный процесс?Какая версия клиента Oracle была установлена?В каком каталоге был установлен клиент Oracle?Можете ли вы увидеть правильные записи реестра?

2 голосов
/ 19 сентября 2015

Что касается меня, я получаю Unable to load DLL "OraOps12.dll" сообщение об ошибке.

Это веб-приложение, и я использую Oracle XE. Как веб-приложение (клиентское приложение), так и сервер базы данных Oracle XE установлены на одном компьютере.

Сервер базы данных Oracle XE поставляется с собственным клиентом Oracle 11, но веб-приложение ASP.NET MVC использует клиент Oracle 12. Несмотря на то, что на компьютере я установил мгновенный клиент Oracle 12, веб-сайт ASP.NET MVC не смог его увидеть, он продолжает жаловаться на «Невозможно загрузить DLL OraOps12.dll».

Мне нужно было отредактировать реестр на HKLM\Software\Oracle\ODP.NET\DllPath, чтобы он указывал на мгновенный клиент Oracle 12 вместо клиента Oracle 11, который устанавливается вместе с Oracle XE.

Более подробное объяснение я опубликую позже, как только стану свободным.

0 голосов
/ 31 декабря 2011

Можете ли вы пролить свет на эту проблему, например, является ли целевая ОС 32- или 64-разрядной. Попробуйте сгенерировать установщики x86 и 64bit и проверить их на клиентском компьютере. В противном случае клиент Oracle может быть неправильно установлен на клиентском компьютере. Эти проблемы немного сложны для решения. Попробуйте взглянуть на это в других направлениях.

0 голосов
/ 31 декабря 2011

Я подозреваю, что либо весь клиент Oracle не был установлен, либо была установлена ​​более ранняя версия.

Клиент должен убедиться, что версия установленного клиента Oracle соответствует вашей и что установлен весь клиент, а не только часть .Net.

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