Можно ли использовать развертывание ODP 11 xcopy и не изменять PATH? - PullRequest
1 голос
/ 04 декабря 2008

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

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

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

Ответы [ 5 ]

4 голосов
/ 04 декабря 2008

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

3 голосов
/ 04 декабря 2008

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

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

Если вы в этом случае, вы можете распространять только Oracle Instant Client с вашим приложением. См. этот вопрос для более подробной информации.

2 голосов
/ 13 марта 2009

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

0 голосов
/ 13 сентября 2011

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

0 голосов
/ 01 сентября 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...