7

Visual Studio 2012 で新しい WPF アプリケーションを作成すると、プラットフォーム ターゲットとビルド構成が既定で x86 に設定されます。これはなぜですか?プレーンな WPF アプリケーション (混合モード アセンブリへの参照なし) の場合、AnyCPU を使用する危険性はありますか?

4

3 に答える 3

5

これはなぜですか?

ほとんどのアプリケーションでは、実際には 32 ビットとしてビルドする方が優れています。64 ビットには利点がほとんどなく、ほとんどの場合、重大な欠点がいくつかあります (メモリ使用量がはるかに多い、複数のプラットフォームでの依存関係管理がより複雑になる、デバッグ エクスペリエンスが低下するなど)。

ただし、アプリケーションで大量のメモリを使用できるようにする必要がある場合は、もちろん 64 ビットに利点があります (VS で簡単に切り替えることができます) が、ほとんどのアプリケーションはこのボートには当てはまりません。

これが、VS 2012 の新しいデフォルトがアプリケーションAnyCPUPrefer32Bitの代わりに使用するAnyCPU理由です。

于 2012-06-14T16:33:44.470 に答える
2

このバグ レポートによると、これは、x64 コードを使用する x64 マシンでのエディット コンティニュの問題が原因で行われました。x86 に変更することで、エディット コンティニュが正常に動作します。

AnyCPU に切り替えても危険はありません。私はいつもこれをします。

于 2012-06-14T16:38:29.710 に答える
0

CPU を指定することを選択した場合は、.exe をいずれかのプラットフォームに自動的に制限します。

絶対に 32 ビットの依存関係がない限り、これを行う理由はほとんどありません。

つまり、「パフォーマンス」の問題はありません。本当の問題は「互換性」です。32 ビット コンポーネントをロードし、64 ビット プラットフォームを使用している場合は、WOW64 を呼び出す必要があります。CLRTIMAGETYPE を使用すると、それを行うことができます。

于 2012-06-14T16:28:39.533 に答える