Какая минимальная настройка требуется для развертывания .NET-приложения с Oracle client 11?
Вопрос
Какая минимальная настройка требуется для развертывания .NET-приложения, взаимодействующего с базой данных Oracle?
Решение
Джош-
Большое вам спасибо, что нашли время ответить.Ваши инструкции очень помогли, и они очень близки к тому, что я нашел самостоятельно.
Интересно, что я обнаружил, что его можно еще немного уменьшить.
Для тех, кто в моей ситуации, кто
- Не хотят, чтобы их пользователям приходилось устанавливать ODAC или полноразмерный клиент Oracle
- Не заботьтесь о повторном использовании конкретной клиентской установки
- Нужно решение, совместимое с "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+, поддерживает западных персонажей, но при этом приносит пользу
- для этого не требуется никакого пути,
- не требует записей в реестре,
- изолирован при развертывании и не подключается к другим установкам клиента Oracle,
- works вернет все базы данных обратно через 9.2.
Другие советы
- Загрузите развертывание ODAC 11 XCopy.
Извлеките zip-файл и запустите следующее:
установить.bat odp.net20 c:\oracle\11.1\odac myoraclehome true
Скопируйте файлы из каталога 11.1 и поместите их в подкаталог исполняемого файла вашего приложения (напримерdebug\bin\oracle)
Добавьте следующие инструкции к вашему методу 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.