ODP.NETを使用してOracle DBに接続するアプリケーションを開発中です。私は、32ビットと64ビットの両方のマシン用に1つのバージョンを用意したいと思います。問題は、anycpuターゲットでprojetcをビルドする方法を見つけられなかったことです。目標はODPドライバのバージョンと同じである必要があるようです。したがって、同じアプリケーションのバージョンに32ビット用と64ビット用のバージョンが必要です。しかし、MS .NETのOracleクライアント(System.Data.OracleClient)を使用している間は同じ問題はありませんでした。 MS .NETクライアントと同じようにODP.NETを使用する方法はありますか?32bitと64bit両方のODP.NET
答えて
デフォルトのオプションは、x64とx86の両方のオペレーティングシステムで動作します。
つまり、同じアプリケーションのバージョンには、 が1つ、32ビットと64ビットが必要です。しかし、同じことがMS .NET Oracleクライアント(System.Data.OracleClient)を使用している間は の問題ではありませんでした。
これは期待されています。x86バージョンとx64バージョンをリリースする必要があります.x64アプリケーションはx64アセンブリを参照できません。その逆もあります。
Microsoftの参照が異なる理由は、既定で.NET Frameworkの一部であったためです。
ODP.NETにはx86アセンブリとx64アセンブリがありますが、私が思うところではファイルをダウンロードできません。
正しい方法は、プログラムのx86バージョンとx64バージョンをリリースすることです。
ODP.NETがnative OCI DLLsに依存しているのは根本的な原因ですが、もちろん「任意のCPU」にすることはできません。
理論的には、ODP.NETは.NETコードの現在の実行の「ビット数」を検出し、それに応じて32ビットまたは64ビットのネイティブDLLを動的にロードできますが、現在実装されていません。
Oracle社は現在、fully managed providerを実装中です。しかし、until then、私たちは、それぞれの "ビット"について別々のビルドを行う必要があります。
別々のビルドは必要ありません。デプロイメント・ターゲットには1つのoracleクライアントしかなく、GACでDLLを参照している限り、「Any CPU」は問題ありません。たとえば、私は64ビット版のWebアプリケーションを構築します。私のプロジェクトはGACの32ビットデータアクセスライブラリを参照していますが、展開するとGACの同じライブラリが検索され、64ビットコピーが見つけられ、完璧に動作します。 –
わずか数年後に更新されました。OracleはマネージドODP.NETクライアントをリリースしました。したがって、.NETアプリケーションでx64/x86を使用する必要はありません。詳細については、OracleのWebサイトを参照してください。http://www.oracle.com/technetwork/topics/dotnet/index-085163.html
注意:ODP.NET 12. *はOracle 9データベースをサポートしていません(10のみ。2以上がサポートされています) – surfen
あいにく、管理対象アセンブリを明示的なx86またはx64としてコンパイルします。 AnyCPUを使用している場合、同じプロセッサアーキテクチャの警告/エラーがさらに発生する可能性があります。 – StingyJack
ODP.NETは、特に32ビットまたは64ビットのプラットフォーム向けに構築されています。 32ビットまたは64ビットプロセスで使用できるAnyCPU用の単一ライブラリを構築できました。しかし、Branko Dimitrijevicが触れたように、ODP.NETのマネージドdllは、舞台裏でネイティブライブラリを使用しています。ネイティブライブラリはプラットフォーム固有です。オラクルには各プラットフォーム用に個別のODP.NETライブラリを構築する必要があります。代わりはありません。
これは既存の回答に何が追加されますか? – BradleyDotNET
- 1. 32bit 64bit互換
- 2. C#32bitアプリ64bitレジストリ
- 3. Excel 32bit for 64bit addin
- 4. mongorestore 64bitから32bit
- 5. Inno Setup 32bitと64bit dllのインストール
- 6. アクセス> 2,3,4GB 64bit(または32bit)Windows上の32bitファイルファイル
- 7. Windows 64bit OS上の32bitまたは64bit Android SDK?
- 8. Windows上で32bit jvmを実行する32bit eclipse 64bit
- 9. 32bit WIXインストーラから64bitシステムを検出
- 10. ODP.NET 64bitを使用した.NET Webサービス
- 11. 私の64bitボックスが32bit IISアセンブリを生成する方法
- 12. 32bitと64bit Windowsの間の日時粒度
- 13. SHGetSpecialFolderPath、32bitアプリケーションから64bit CSIDLにアクセスする方法
- 14. 32bitコンピュータでVS 2005と64bit DLLをクロスコンパイルするには?
- 15. Windows 64bitで動作するMatlab 32bitでMEXファイルをコンパイルする
- 16. 64bitプロパティシートは32bit winapi dllを使用しています
- 17. 32bitマシン上で実行される64bitコンポーネントCOM +エクスポート
- 18. MySQL 32bitデータベースを64bit MySQLにインポート/コピーできますか?
- 19. 32bitアプリから64bitアプリを起動しますか?
- 20. 32bit Pythonから64bitレジストリを変更する
- 21. .net 3.5と.net 4の両方でodp.netアプリケーションを実行する方法
- 22. 32bitアプリケーションは64bit Macでどのように動作しますか?
- 23. 32bitパッケージを廃止した64bit rpmパッケージを作成するには?
- 24. ODP.NetとC#
- 25. 32bitから64bitへのアップデートにはどのような方法が最適ですか?
- 26. 64bit sqlserver2005と32bit sql2000の間でリンクサーバーを使用する際の既知の問題はありません
- 27. 私の64ビットIntelベースMac(Perl/Pythonユーザー)にMySQL 32bitまたは64bitをインストールする方がいいですか?
- 28. 64bitのTomcatを使用すると、32bitのTomcatよりもパフォーマンスが向上しますか?
- 29. 32bit int * 32bit int = 64ビットint?
- 30. _WIN32と_WIN64の両方を64bitビルドで定義する必要がありますか?
"正しい方法"!= "オラクルがあなたにそれを働かせるように強制する方法"。リリースフットプリントの2倍は、データベースのライセンス料金を請求する際には管理しやすいかもしれませんが、ほとんどの人はその種の資本を持っていません。 – StingyJack