一般に、.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. Windows 7でPython 2.7 32ビットまたは64ビットを使用する必要があります
- 6. 32ビットと64ビットのアプリケーションで別々のPATH変数を維持する方法はありますか?
- 7. 32ビットで動作するが64ビットで動作しないVB3アプリケーション
- 8. 64ビット.NETアプリケーションでCallingConventionは無視されますか?
- 9. Wixでは、SQLiteを使用するプログラムを配布します(32ビットと64ビットの両方で動作する必要があります)
- 10. 「Any CPU」コンパイル済みアプリケーションを64ビットOSで32ビットモードで実行する方法はありますか?
- 11. インターネットでもローカルのインターネットでも動作するアプリケーションを作成する必要があります
- 12. 32ビットと64ビットは一緒に動作できますか?
- 13. Windows Mobile上で動作する.NET IDEはありますか?
- 14. 私は64ビットOSと32ビットOSで動作するアセンブラを探しています
- 15. Spring InsightにはtcServerが必要ですか、それともEclipseとTomcatで動作するのですか?
- 16. 32ビットまたは64ビットのJDKを使用する必要がありますか?
- 17. FB SDK 3.0アクセストークンを拡張する必要がありますか、それとも自動ですか?
- 18. AnyCPUアプリケーションを64ビットOS上で32ビットとして実行
- 19. JavaScriptのインポートステートメントがCurvyCornersを動作させるには十分ですか、それとももっと追加する必要がありますか?
- 20. 開発環境を64ビットに変更するWindows 7 - アプリケーションがクラッシュする
- 21. 32ビットOSで64ビット実行可能ファイルを作成する
- 22. 32ビットExcelアドインは、64ビットExcelで動作できますか?
- 23. Android ICSバージョンのAndroid CTSとMonkeyテストを実行するには64ビットのOSが必要ですか?
- 24. Windowsサービスをインストールするときに手動でWindowsイベントログソースを作成する必要がありますか
- 25. .NET - dllがそのDLLの32ビットまたは64ビットバージョンであるかどうかを確認するには
- 26. Windows上の32ビットODBCドライバに64ビットODBCアプリケーションをブリッジするためのソフトウェアはありますか?
- 27. Windows 7 x64 RTMにOracle10g Client 64ビット10.2.0.3をインストールする人は誰でも運がありますか?
- 28. プロセスが64ビットか32ビットかをチェックする方法はありますか?
- 29. プログラムカウンタは常に変更する必要がありますか?
- 30. 64ビットC#アプリケーションで32ビットライブラリを使用する方法はありますか?
"そうでない場合は/ターゲットではなく/ x86をターゲットにする..."という意味ですか? x86のみを対象とすると問題が発生します。 – Richard
@リチャード:いいえ、jsimasは正しいです。 x86のみをターゲットにしている場合、アプリケーションは64ビットOS上で32ビットプロセスとして実行されます(64ビットWindows上で実行されるネイティブx86 exeと同じです)。 32ビットOS上で実行されているのとほぼ同じ環境になります。 –