После трех часов, потраченных на это, моя проблема была просто:
Отсутствует OraOps11w.dll
Почему это должно генерировать сообщение об ошибке «Поставщик не совместим с версией клиента Oracle»? Это должно быть плохое кодирование / тестирование Oracle. Я использую Oracle с 1994 года и много раз с .Net с 2002 года. Это практически всегда боль.
Каждый должен удалить Oracle и следовать приведенному выше решению Криса (верхний ответ) . Это должно работать каждый раз
Из другого поста о StackOverflow вы узнаете, как удалить Oracle (забудьте об инструменте удаления Oracle, так как он работает неправильно):
- Удалите все компоненты Oracle с помощью универсального установщика Oracle (OUI).
- Запустите regedit.exe и удалите ключ HKEY_LOCAL_MACHINE / SOFTWARE / ORACLE. Он содержит записи реестра для всех продуктов Oracle.
- Удалите все ссылки на службы Oracle, оставленные в следующей части реестра:
HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services / Ora *
Должно быть совершенно очевидно, какие из них относятся к Oracle.
- Перезагрузите компьютер.
- Удалите каталог "C: \ Oracle" или любой другой каталог, который является вашим ORACLE_BASE.
- Удалите каталог «C: \ Program Files \ Oracle».
- Очистите содержимое вашего каталога "c: \ temp".
- Опорожните корзину.
У Криса меньше dll, чем у меня на Server 2003 (32 бита). Вот что у меня есть:
C:\oracle\instantclient>dir /b
oci.dll
ociw32.dll
Oracle.DataAccess.dll
orannzsbb11.dll
oraocci11.dll
oraociei11.dll
OraOps11w.dll
Orasqlplusic11.dll
sqlplus.exe
tnsnames.ora
C: \ oracle \ instantclient находится в глобальном пути и в переменной среды ORACLE_HOME. Ссылки на код .Net C: \ oracle \ instantclient \ Oracle.DataAccess.dll