0


0

プローブアセンブリ

数年前、System.Data.OracleClientを使用してOracleデータベースにアクセスするWindowsサービスアプリ(VB.NETフレームワーク1.1)を開発しました。 +そのドライバーは私に多くのトラブルを与えてくれたので、私はずっと良く機能するoracle dataprovider(Oracle.DataAccess.dll)を参照したかった。 +私のPCでは、すべて正常に動作します。 +問題は、サーバー(windows 2000)でアプリを公開しようとしたときです。 +そのサーバーに新しいOracleデータプロバイダーをインストールできず、Oracle 9.0の古いインストールがあります(私のアプリはOracle 9.2を参照しています)。 +ディレクトリ(C:\ oracle \ ora92 \ bin)全体をPCからサーバーにコピー(インストールなし)しましたが、Oracleデータプロバイダーを参照する方法がわかりません。 私はそれが物事を行うための「クリーンな」方法ではないことを知っていますが、新しいソフトウェアをインストールする可能性はありません。 + C:\ oracle \ ora92 \ binフォルダーにアプリ(およびすべてのファイル)をコピーすると、すべて正常に動作することがわかりました。 +そのディレクトリをアプリケーションのプローブディレクトリとして指定したい。 Webで見つかったさまざまなソリューションを試しましたが、どれも機能していないようです。

実行時または構成ファイルにフォルダーを設定して、アプリがそこにあるアセンブリ(およびすべての依存関係)を使用できるようにします。

フレームワーク2.0用にアプリをアップグレードできます。

ありがとう

アルベルト

1 Answer


1


他の方法でそれを行います-Oracleアセンブリをアプリケーションのルートに配置します。 またはさらに良い-サーバー上のGACにアセンブリを配置します。 そのために使用されるユーティリティ(gacutil)はサーバー上で正常に実行されるはずです。

多分これはあなたを助けることができます:https://stackoverflow.com/questions/1594214/c-custom-assembly-directory[C#:カスタムアセンブリディレクトリ]

他のすべてが失敗した場合、AppDomainのAssemblyResolveイベントにサブスクライブできます。