一般に、.NET Windows Formsアプリケーションは64ビットOSで動作するのですか、それとも変更する必要がありますか?.NET Windows Formsアプリケーションは64ビットOSで動作するのですか、それとも変更する必要がありますか?
答えて
ほとんどの場合、うまくいくはずです。安全でない管理コードであろうと、interop/PInvokeであろうと、ネイティブコードを使って何かをしているのであれば注意が必要ですが、すべてのコードが管理されていれば問題はありません。
32ビットの外部ライブラリ(COMコンポーネントなど)に依存しない場合、64ビットプロセスとして完全に機能し、そのメリット(大容量アドレス空間、x64命令セットなど)を活用します。 。たいていの場合、ターゲットプラットフォームをx86に設定することで32ビットアプリケーションとして実行できます。
純粋な.NETアプリケーションは、変更なしで64ビットオペレーティングシステムで実行されます。
C++/CLIライブラリを使用する場合は、アーキテクチャ固有のCOMコンポーネントを使用するか、P/Invokeコールを実行する場合は、がアプリケーションを64ビット環境用に更新する必要があります。
ほとんどの64ビットOSは32ビットアプリケーションを問題なく処理できます。このため、64ビットOS上にProgram Files(x86)フォルダが表示され、多くの古い32ビットアプリケーションを処理することができます。
ほとんどの.NETアプリケーションは、VS.NETのデフォルトである任意のCPUの代わりにx86をターゲットにする場合、64ビットで修正されていないはずです。
ライブラリープラットフォームを混在させて一致させない限り、問題ありません。コンパイル時にはx86をターゲットにしてください。
このリンクによると:MSDN - Migrating 32-bit Managed Code to 64-bit。
100%タイプの安全な管理コードをお持ちの場合、実際に64ビットプラットフォームにコピーし、64ビットCLRで正常に実行できます。
しかし、あなたは、以下の特徴のいずれかを使用している場合:
- P /呼び出し
- 呼び出すCOM機構としてマーシャリングを使用して、安全でないコードの使用
- を作る
- オブジェクトを経由して、プラットフォームのAPIを呼び出しを情報を共有するために
- 状態を永続化する方法としてシリアライズを使用する
これは、アプリケーションが完全に互換性がない可能性があることを示します。
- 1. 32ビット.NETアプリケーションと64ビット.NETアプリケーションに違いはありますか?
- 2. 64ビットOSで開発する利点はありますか?
- 3. 開発マシンに32ビットまたは64ビットのOSを使用する必要がありますか?
- 4. 64ビットOS上の64ビットCPU上でX86-64 Pythonを実行する利点はありますか?
- 5. アプリケーションのOSが32ビットまたは64ビットで動作しているかどうかを確認する方法はありますか?
- 6. DUnitXは64ビットで動作できませんか?私は、Windowsを'64にそれを変更する - ビット際、しかし、
- 7. Windows 7でPython 2.7 32ビットまたは64ビットを使用する必要があります
- 8. 32ビットと64ビットのアプリケーションで別々のPATH変数を維持する方法はありますか?
- 9. 64ビット.NETアプリケーションでCallingConventionは無視されますか?
- 10. Javaアプリケーションから32ビットOSまたは64ビットOSを決定する方法
- 11. 32ビットで動作するが64ビットで動作しないVB3アプリケーション
- 12. 逆シリアル化された各64ビット整数は、ビットごとに等価の64ビット浮動小数点数に変換する必要があります
- 13. Windowsアプリケーションの64ビットOSへのインストール10
- 14. 「Any CPU」コンパイル済みアプリケーションを64ビットOSで32ビットモードで実行する方法はありますか?
- 15. 32/64ビットQT C++プログラムでボリュームシャドウコピーサービスを使用する必要があります
- 16. 32ビットと64ビットは一緒に動作できますか?
- 17. Windows Mobile上で動作する.NET IDEはありますか?
- 18. Wixでは、SQLiteを使用するプログラムを配布します(32ビットと64ビットの両方で動作する必要があります)
- 19. AnyCPUアプリケーションを64ビットOS上で32ビットとして実行
- 20. ユニティビルドのアプリケーションが32ビットまたは64ビットであること
- 21. 私は64ビットOSと32ビットOSで動作するアセンブラを探しています
- 22. インターネットでもローカルのインターネットでも動作するアプリケーションを作成する必要があります
- 23. 32ビットOSで64ビット実行可能ファイルを作成する
- 24. 32ビットまたは64ビットのJDKを使用する必要がありますか?
- 25. 開発環境を64ビットに変更するWindows 7 - アプリケーションがクラッシュする
- 26. 64ビットOSのAnyCPUにもかかわらず、IntPtr.Sizeは常に4です
- 27. Android ICSバージョンのAndroid CTSとMonkeyテストを実行するには64ビットのOSが必要ですか?
- 28. 32ビットExcelアドインは、64ビットExcelで動作できますか?
- 29. Spring InsightにはtcServerが必要ですか、それともEclipseとTomcatで動作するのですか?
- 30. Windows 10のShellExecuteEx()64ビットOS
"そうでない場合は/ターゲットではなく/ x86をターゲットにする..."という意味ですか? x86のみを対象とすると問題が発生します。 – Richard
@リチャード:いいえ、jsimasは正しいです。 x86のみをターゲットにしている場合、アプリケーションは64ビットOS上で32ビットプロセスとして実行されます(64ビットWindows上で実行されるネイティブx86 exeと同じです)。 32ビットOS上で実行されているのとほぼ同じ環境になります。 –