0

数年前、System.Data.OracleClientを使用してOracleデータベースにアクセスするWindowsサービスアプリ(VB.NET Framework 1.1)を開発しました。
そのドライバーは私に多くの問題を与えたので、私ははるかにうまく機能するOracleデータプロバイダー(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用にアプリをアップグレードできます。

ありがとう

アルベルト

4

1 に答える 1

1

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

多分これはあなたを助けるかもしれません:C#:カスタムアセンブリディレクトリ

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

アセンブリ解決

于 2010-11-14T20:34:05.547 に答える