私はあなたの痛みを感じます.展開状況で似たようなことを経験しました.おそらく複数のクライアントがインストールされており、環境は古いリリースの dll をプルしています (プロジェクトで最新の oracle.dataaccess.dll が正しく参照されている場合でも)。開発環境でこれを修正することは 1 つのことですが、prod デプロイメント サーバーは別のことです。あなたの展開状況がどのようなものかはわかりませんが、これが私にとってうまくいったことです.
既存のオラクル ホームで odp.net をアップグレードしたり、新しいオラクル ホームを追加したりするのに苦労した後、すべてを修正する最も簡単な方法は、最新の xcopy デプロイメントによる odac Oracle から、readme に従います (そして ここ これに関する古い記事についても)。基本的には、install.bat ファイルを実行してローカルでセットアップし (別のフォルダー、私の場合は c:\oracle_odac)、プロジェクト参照を変更して、この新しいフォルダー内の oracle.dataaccess.dll を指すようにします (私は代わりに 4 を使用しました2.x) を作成し、新しいフォルダーの bin ディレクトリをパス (c:\oracle_odac\bin および c:\oracle_odac\odp.net\bin\4) の前に追加します。展開サーバーでは、c:\oracle_odac フォルダー全体を (xcopy などを使用して) コピーし、パスを設定するだけです。
とはいえ、完全に管理された製品のリリースを心待ちにしていますodp.net Oracle から (現在はベータ版)。
編集:アプリまたはWeb構成ファイルでdllpathをセットアップすると、PATHをいじるのを避けることができることを追加するだけです。例:
<configuration>
...
<configSections>
<section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
...
<oracle.dataaccess.client>
<settings>
<add name="DllPath" value="c:\oracle_odac\bin"/>
</settings>
</oracle.dataaccess.client>
...
これにより、registry や machine.config などの他の設定が上書きされます。また、複数の odp.net 構成が問題なく存在できるようにし、各アプリが同じサーバー上で必要なバージョンを指すようにします。