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. 64bit Debianと32bit Wine
- 2. 32bit 64bit互換
- 3. Python3 32bit 64bit
- 4. C#32bitアプリ64bitレジストリ
- 5. mongorestore 64bitから32bit
- 6. Excel 32bit for 64bit addin
- 7. Apacheウェブサーバ64bitコンピュータ上の32bit
- 8. Inno Setup 32bitと64bit dllのインストール
- 9. Convert python 2.7 64bit to 32bit CentOS6.9
- 10. アクセス> 2,3,4GB 64bit(または32bit)Windows上の32bitファイルファイル
- 11. Windows 64bit OS上の32bitまたは64bit Android SDK?
- 12. python 32bitをanacondaと一緒にインストールする方法64bit
- 13. mix 32bit libと64bit libをプログラミングする方法
- 14. Windows上で32bit jvmを実行する32bit eclipse 64bit
- 15. ODP.NET 64bitを使用した.NET Webサービス
- 16. ビルドgtest for MSVC:32bitまたは64bit?
- 17. ヘッダを含むOpenCL(32bit vs 64bit)
- 18. 32bit WIXインストーラから64bitシステムを検出
- 19. 私の64bitボックスが32bit IISアセンブリを生成する方法
- 20. 32bitと64bit Windowsの間の日時粒度
- 21. SHGetSpecialFolderPath、32bitアプリケーションから64bit CSIDLにアクセスする方法
- 22. 32bitコンピュータでVS 2005と64bit DLLをクロスコンパイルするには?
- 23. 64bit Ubuntuにビルドするときに32bit libGL.soをリンクする方法は?
- 24. C++ RHEL4 32bitで書かれたアプリケーションのRHEL6への移行64bit
- 25. コンパイルエラー:型の不一致(32bitから64bit VBAコーディングへの変換)
- 26. 64bitプロジェクトの32bitレコードから読み込み
- 27. 32bitプロセスから64bitプロセスメモリへのエントリポイントを取得
- 28. .net 3.5と.net 4の両方でodp.netアプリケーションを実行する方法
- 29. 32bitマシン上で実行される64bitコンポーネントCOM +エクスポート
- 30. 32bitアプリから64bitアプリを起動しますか?
"正しい方法"!= "オラクルがあなたにそれを働かせるように強制する方法"。リリースフットプリントの2倍は、データベースのライセンス料金を請求する際には管理しやすいかもしれませんが、ほとんどの人はその種の資本を持っていません。 – StingyJack