この問題を説明する最も簡単な方法は、OracleクライアントとODACクライアントライブラリの違いを指摘することです。
64ビットマシン(Windows 7以降)では、64ビットOracleクライアントがインストールされている必要があります。これは、マシンがローカルにデプロイされているOracleデータベースに接続するためにマシンが使用するクライアントです。 Webサーバーまたは他のターミナルサーバーでホストされているアプリの場合、ルールは同じです。
秘訣はこれです...開発者として、私たちのマシンには.NetIDEツールも必要です。 Oracleには厄介な命名規則がありますが、基本的にODT(ツール)とODAC(データアクセス)の2つがあります。 ODP.NetデータプロバイダーはODACライブラリの一部です。
つまり...IDEに戻ります...VisualStudioは32ビットであるため、上記のツールを32ビットでインストールする必要があります。
開発中、デバッグ中など。VS.Netは、32ビットのクライアントライブラリとデータアクセスライブラリを使用してOracleと連携しています。
このアプリケーションをマシンにデプロイするとすぐに、特定のプラットフォームがターゲットにされていない限り、マシンにロードされているクライアントが使用されます。
つまり、32をターゲットにして64にデプロイすると、壊れてしまいます...その逆も同様です。最善の方法は、それを任意のプラットフォームセクションに残し、何をしているのかを覚えておくことです:)
注意すべきもう1つのことは、クライアントパッケージとODACパッケージの両方が同じバージョンであることを確認することです...11gR2クライアントと11gR5ODACは必要ありません。デプロイするとすぐに、がらくたが再び壊れてしまうからです。
ここでの注意点は、アプリケーション内にOracleクライアントを「埋め込む」場合です。この場合、OraOpsは他のいくつかのライブラリとともにアプリケーションとともにデプロイされます。これはOracleのインスタントクライアントと呼ばれ、ODACパッケージの一部であり、含まれています。本格的なクライアントパッケージでも。
朗報...
オラクルは間もなく(2013年第1四半期)次のODP.Netパッケージをリリースします...これは完全にマネージコードライブラリになります...これは、一致する個別のクライアントまたはODACパッケージがなくなることを意味し、プラットフォームは32を認識しません。そして64ビットの違い...古いマイクロソフトライブラリと同じように機能しますが、より堅牢な機能セットを備えたオラクルによって構築および保守されるだけです。早く到着したいだけです。