Зондирующие сборки
Несколько лет назад я разработал приложение для службы Windows (VB.NET framework 1.1), которое использовало System.Data.OracleClient для доступа к базе данных Oracle.
Поскольку этот драйвер доставил мне много неприятностей, я хотел сослаться на провайдера данных Oracle (Oracle.DataAccess.dll), который работает намного лучше.
На моем ПК все работает нормально.
Проблема в том, когда я пытаюсь опубликовать свое приложение на сервере (Windows 2000).
Я не могу установить новый поставщик данных oracle на этом сервере, и есть старая установка oracle 9.0 (мое приложение ссылается на oracle 9.2).
Я скопировал (без установки) весь каталог (C:\oracle\ora92\bin) с моего компьютера на сервер, но я не знаю, как ссылаться на поставщика данных Oracle. Я знаю, что это не "чистый" способ сделать что-то, но у меня нет возможности установить новое программное обеспечение.
Я видел, что если я копирую свое приложение (и все файлы) в папку C: \ oracle \ ora92 \ bin, все работает нормально.
Я хотел бы указать этот каталог в качестве проверочного каталога моего приложения. Я пробовал разные решения, найденные в Интернете, но ни одно из них, похоже, не работает.
Я хотел бы установить папку во время выполнения или в моем файле конфигурации, чтобы мое приложение могло использовать сборки там (и все зависимости).
Я могу обновить свое приложение для фреймворка 2.0.
Спасибо
Alberto
1 ответ
Сделайте это наоборот - поместите сборки Oracle в корень вашего приложения. Или даже лучше - поместите сборки в GAC на сервере. утилита, используемая для этого (gacutil), должна нормально работать на сервере.
может быть, это может помочь вам: C#: каталог пользовательских сборок
если ничего не помогает, вы можете подписаться на событие AssemblyResolve в AppDomain: