質問
数年前、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フォルダーにアプリ(およびすべてのファイル)をコピーすると、すべてが正常に機能することがわかりました。
アプリケーションの調査ディレクトリとしてそのディレクトリを指定したいと思います。ウェブ上で見つかったさまざまなソリューションを試しましたが、どれも機能していないようです。
アプリがそこにあるアセンブリ(およびすべての依存関係)を使用できるように、実行時または設定ファイルにフォルダを設定したいと思います。
フレームワーク2.0のアプリをアップグレードできます。
ありがとう
アルベルト
解決
逆にそれをしてください - Oracleアセンブリをアプリケーションのルートに入れます。またはさらに良い - サーバー上のGACにアセンブリを入れます。そのために使用されるユーティリティ(gacutil)は、サーバーで正常に実行されるはずです。
多分これはあなたを助けることができます: C#:カスタムアセンブリディレクトリ
他のすべてが失敗した場合、ApplemainのAssemblyResolveイベントを購読できます。