2009-07-02 12 views
7

64ビットOSを搭載したマシンを最大限に活用するには、.NETのアプリケーションを64ビットで構築する必要がありますか、それとも32ビットビットビルド。基本的には、メモリ不足例外に関する問題があり、問題を解決する可能性がある64ビットボックスでコンソールアプリケーションを実行することをお勧めします。問題は、64ボックスを回転させて現在のアプリケーションを投げたり、64ビットの方法でアプリケーションを再構築する必要があるかどうかです。.netコンソールアプリケーション32対64ビット

答えて

12

アプリが「Any CPU」プラットフォーム向けに構築されている場合は、いずれかで適切に動作します。

32/64ビットのものを使用していないことを確認するだけで問題が発生します。

MSDN docs here欠点のいくつかの議論については

、それは任意のプラットフォーム(デフォルト)のために組み込まれている場合は、64ビットオペレーティングシステム上で64ビットで動作しますhere

+7

これは厳密には.Net 4.5ではなく、プロジェクト設定で32ビットを優先する必要があります。http:// blogs .microsoft.co.il/sasha/2012/04/04/what-anycpu-really-means-of-net-45-and-visual-studio-11 / – gmn

5

を参照してください。

これは、潜在的な問題がまだあります。ネイティブコード(p/invoke、C++/CLI、またはCOMを介して)とインターフェイスする場合、そのコードを64ビットに移植する必要があります。アプリケーションが100%管理されている場合は、動作します。

1

"Any CPU"はあなたの友人です。余談として

私たちは、32ビットのWindowsの2GBのメモリ空間を超え、特に大きなTrie構造を持っていました。ほとんどの構造がオブジェクトリファレンスで構成されているため、64ビットに移行すると、アプリケーションのメモリ要件はほぼ倍増し、約4GBが必要になります。これは、リファレンスを格納するメモリが32ビットではなく64ビットであるためです。

関連する問題