Какая минимальная настройка требуется для развертывания приложения.NET с клиентом Oracle 11?
Какая минимальная настройка требуется для развертывания приложения.NET, которое взаимодействует с базой данных Oracle?
4 ответа
Josh-
Большое спасибо, что нашли время ответить. Ваши инструкции очень помогли и очень близки к тому, что я нашел сам.
Интересно, что я обнаружил, что его можно похудеть немного больше.
Для тех, кто в моей ситуации, кто
- Не хотите, чтобы их пользователи устанавливали ODAC или полноразмерный клиент Oracle
- Не заботьтесь о возможности повторного использования конкретной установки клиента
- Нужно совместимое решение "clickOnce"
Я нашел способ сделать это.
а. Загрузите "Oracle Instant Client 11.1.0.6 - Basic Lite". б. разархивируйте в любую папку и скопируйте следующие файлы в корневой каталог проекта Visual Studio:
- oci.dll
- OCIW32.DLL
- orannzsbb11.dll
- oraocci11.dll
- oraociicus11.dll
msvcr71.dll (не обязательно, должен поставляться с большинством версий Windows)
(первые пять - это минимум, необходимый для Oracle Instant Client, последняя - это общее время выполнения Microsoft, которое они используют.)
с. Загрузите ODAC 11 XCopy (текущая версия 11.1.0.6) и разархивируйте.
OraOps11w.dll - в папке odp.net20, идет в корне вашего проекта.
(этот файл - то, с чем Oracle.DataAccess.dll обращается и использует для работы с файлами Instant Client).
д. Для совместимости с развертыванием ClickOnce выберите эти файлы в своем проекте и убедитесь, что они являются "Содержимым" и "Копировать локальные" в вашем проекте. Затем манифест развернет их правильно.
Результат... полезная нагрузка, добавленная в ваш проект, составляет 30 МБ, что отчасти отстой, но намного лучше, чем 100+ или 400+, поддерживает западные символы, но в этом есть смысл
- это не требует пути,
- не требует записей в реестре,
- изолирован при развертывании и не подключается к другим установкам Oracle Client,
- работает будет все БД обратно через 9.2.
- Загрузите развертывание ODAC 11 XCopy.
Распакуйте zip-файл и выполните следующее:
install.bat odp.net20 c: \ oracle \ 11.1 \ odac myoraclehome true
Скопируйте файлы из каталога 11.1 и поместите их в подкаталог исполняемого файла вашего приложения (например, debug\bin\oracle)
Добавьте следующие операторы в ваш метод Main(). Они изменят путь так, что исполняемый файл вашего приложения будет использовать клиент oracle, исключая любой другой дом oracle. Изменение среды является исключительным для вашего процесса и не имеет долгосрочных последствий при завершении работы приложения:
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, которая устанавливается при запуске install.bat odp.net2 c:\oracle odac, должна быть помещена в вашу исполняемую папку (освобождая место)
Я бегу с оракулом мгновенного клиента 11g. Следующий и очень минимальный список файлов - это то, что я нашел необходимым для развертывания:
OCI.dll
Oracle.DataAccess.dll
OraOCIEI11.dll
OraOps11w.dll
Просто установите полный клиент и скопируйте эти файлы из папки bin.