sql >> データベース >  >> RDS >> Oracle

.NETでOracle.DataAccessのファイルまたはアセンブリを読み込めませんでした

    64ビットオペレーティングシステムであるWindowsServer2008R2で今行ったことから答えをお伝えします。提供されたライブラリのアプリケーションスイートは、古いDLLライブラリで.net 3.5 x86を使用して開発されましたが、オラクルから新しいx64クライアントをインストールしたために行き詰まりました。

    私が見つけたのは次のとおりです。OracleforWindowsServer2008から最新のx64クライアントをインストールします。これは2.7.0クライアントになると思います。インストールを選択するときは、必ずカスタムを実行し、.NETライブラリを選択してください。tnsnamesファイルを構成し、データソースに対してtnspingをテストします。

    次に、32ビットアプリケーションを実行している場合は、32ビット用の同じバージョンのクライアントをインストールします。また、同じインストールルーチンに従い、同じ家を選択します。

    完了すると、2つのクライアントディレクトリ(Client1とClient2)を持つ単一のアプリ/製品があることがわかります。

    windows / assemblyディレクトリに移動すると、Oracle.DataAccess.dll(x2)への参照があります。1つはx86用、もう1つはAMD64用です。

    さて、開発者がいるか、自分でマシンで開発しているかによっては、ここで問題ないかもしれませんが、古いドライバーを使用している場合は、最後の1つの手順を実行する必要があります。

    app \ name \ product \ version \ client_1 \ odp.net \ Publisher policy\2.xディレクトリに移動します。ここには、2つのポリシーファイルが含まれています。 gacutil / iを使用して、Policy.2.111.Oracle.DataAccess.dllをGACにインストールします。これにより、従来のOracleODP呼び出しが新しいバージョンにリダイレクトされます。したがって、誰かが10gクライアントで開発した場合、11クライアントで動作するようになります。

    参考までに-2.111.7.20で最新のODP.NETをインストールしている人もいるかもしれません。メインのOracleクライアント自体には2.111.7.0が付属しています。7.20では成功していませんが、7.0クライアントでは問題はありません。



    1. RailsアプリでのHerokuPostgreSQLGROUP_BYエラー

    2. ORACLEJOINを使用してLEFTOUTERJOINまたはRIGHTOUTERJOINを見つける方法(+)

    3. 一時停止ロジックmysqlTIMEDIFF()およびPHPで経過した時間

    4. MySqlDataReader.GetStream()はIndexOutOfRangeExceptionをスローします