Какая минимальная настройка требуется для развертывания .NET-приложения с Oracle client 11?

StackOverflow https://stackoverflow.com/questions/923283

  •  06-09-2019
  •  | 
  •  

Вопрос

Какая минимальная настройка требуется для развертывания .NET-приложения, взаимодействующего с базой данных Oracle?

Это было полезно?

Решение

Джош-

Большое вам спасибо, что нашли время ответить.Ваши инструкции очень помогли, и они очень близки к тому, что я нашел самостоятельно.

Интересно, что я обнаружил, что его можно еще немного уменьшить.

Для тех, кто в моей ситуации, кто

  1. Не хотят, чтобы их пользователям приходилось устанавливать ODAC или полноразмерный клиент Oracle
  2. Не заботьтесь о повторном использовании конкретной клиентской установки
  3. Нужно решение, совместимое с "ClickOnce"

Я нашел способ сделать это.

a.Загрузите "Oracle Instant Client 11.1.0.6 - Basic Lite".b.распакуйте архив в любую папку и скопируйте следующие файлы в корневой каталог вашего проекта Visual Studio:

  • oci.dll
  • ociw32.dll
  • orannzsbb11.dll
  • oraocci11.dll
  • oraociicus11.dll
  • msvcr71.dll (не обязательно, должно поставляться с большинством версий Windows)

    (первые пять - это минимум, необходимый для Oracle Instant Client, последняя - используемая ими общая среда выполнения Microsoft.)

c.Загрузите ODAC 11 XCopy (текущая версия 11.1.0.6) и разархивируйте.

  • OraOps11w.dll - в папке odp.net20, находится в корне вашего проекта.

    (этот файл предназначен для Oracle.DataAccess.dll взаимодействует с файлами Instant Client и использует их для работы с ними).

d.Для совместимости с развертыванием ClickOnce выберите эти файлы в своем проекте и убедитесь, что в вашем проекте они являются "Содержимым" и "Копировать локально".Затем манифест развернет их должным образом.

Результат...полезная нагрузка, добавленная в ваш проект, составляет 30 мб, что в некотором роде отстой, но намного лучше, чем 100 + или 400+, поддерживает западных персонажей, но при этом приносит пользу

  1. для этого не требуется никакого пути,
  2. не требует записей в реестре,
  3. изолирован при развертывании и не подключается к другим установкам клиента Oracle,
  4. works вернет все базы данных обратно через 9.2.

Другие советы

  1. Загрузите развертывание ODAC 11 XCopy.
  2. Извлеките zip-файл и запустите следующее:

    установить.bat odp.net20 c:\oracle\11.1\odac myoraclehome true

  3. Скопируйте файлы из каталога 11.1 и поместите их в подкаталог исполняемого файла вашего приложения (напримерdebug\bin\oracle)

  4. Добавьте следующие инструкции к вашему методу Main().Они изменят путь таким образом, что исполняемый файл вашего приложения будет использовать клиент oracle, отличный от любого другого oracle home.Изменение среды относится исключительно к вашему процессу и не имеет долговременных последствий после завершения работы приложения:

    Environment.SetEnvironmentVariable("PATH", Environment.CurrentDirectory + "\\oracle\\11.1\\odac;" + Environment.CurrentDirectory + "\\oracle\\11.1\\odac\\bin;", EnvironmentVariableTarget.Process);

    Environment.SetEnvironmentVariable("ORACLE_HOME", Environment.CurrentDirectory + "\\oracle\\11.1\\odac", EnvironmentVariableTarget.Process);

Некоторое время назад именно этот поток заставил мою программу работать (СПАСИБО!).Теперь мне сказали, что Oracle не нравится, когда вы выбираете 6 DLL-файлов и помещаете их в свою исполняемую папку.Итак, теперь каждая библиотека dll, которая устанавливается при запуске install.bat odp.net2 c:\oracle odac должен быть помещен в вашу исполняемую папку (занимая место)

Я работаю с oracle instant client 11g.Следующий и очень минимальный список файлов - это то, что я счел необходимым для развертывания:

OCI.dll
Oracle.DataAccess.dll
OraOCIEI11.dll
OraOps11w.dll

Просто установите полный клиент и скопируйте эти файлы из папки bin.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top