Можно ли использовать развертывание ODP 11 xcopy и не изменять ПУТЬ?

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

  •  19-08-2019
  •  | 
  •  

Вопрос

У меня есть приложение, использующее Oracle.Доступ к данным для подключения.Я уже обнаружил, что занимаемую площадь можно уменьшить, используя ODAC 11 с развертыванием xcopy.Это уже большая победа.

В идеале, однако, мы хотели бы, чтобы нам не приходилось изменять какие-либо переменные path и чтобы все файлы ODAC находились в подкаталоге под папкой приложения.Можно ли это сделать без изменения переменной PATH?Есть ли какой-нибудь способ установить временную переменную PATH?Можем ли мы скопировать все необходимые файлы в папку приложения?

Общая идея заключается в том, что мы хотим максимально изолировать наши ODAC-файлы от других приложений, которые могут быть запущены на том же клиенте.

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

Решение

System.Environment.SetEnvironmentVariable позволяет изменять процесс блок среды. Достаточно ли угадать, достаточно ли этого для печально известного PITA Oracle. ;)

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

Как Отметка предложенный, Таким образом, вы всегда можете попросить свое приложение изменить переменную среды для текущего процесса.Обратите внимание, что, очевидно, вам придется сделать это до выполнения любого вызова ODP .NET.

Также обратите внимание, что если вам нужны только чистые функции ODP .NET, под которыми я подразумеваю, что вам конкретно не нужны :

Если вы находитесь в этом случае, вы можете только распространять Мгновенный Клиент Oracle с вашим заявлением.Видишь этот вопрос для получения более подробной информации.

Изменение переменной Environment - приятное занятие, но для академической полноты я думаю, что решение встраивания сборки - это действительно" правильный "способ решения этой проблемы, даже если это больше кода.

Да, можно, см. http: //ora-00001.blogspot.com/2010/01/odpnet-minimal-non-intrusive-install.html для получения подробной информации.

Как упоминалось ранее, этот вопрос StackOverflow рассказывает о том, как можно достичь вашей цели. Этот ответ довольно хороший. Я прокомментировал этот ответ, что смог использовать строку подключения Easy Connect и использовать один и тот же двоичный файл на своей рабочей машине и моей машине для разработки, просто скопировав DLL-файлы Instant Client Lite и Oracle.DataAccess.dll в папку приложения на производстве. машина. На моей машине для разработки у меня установлен полный клиент Oracle. Таким образом, нет необходимости вообще изменять операторы пути.

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