web-dev-qa-db-ja.com

「Any」アーキテクチャタグでコンパイルされたC#アプリケーションを64ビットウィンドウで32ビットアプリケーションとして強制的に実行することは可能ですか?

アーキテクチャタイプに「Any」フラグを設定してコンパイルされた.Netアプリケーションがあります。

アプリケーションを32ビットの実行可能ファイルに再コンパイルせずに、a(any) 64ビットバージョンのWindowsで、アプリケーションを32ビットアプリケーションとして強制的に実行できるかどうか疑問に思っています。

7
blueberryfields

はい、32ビット(x86だと思います)を明示的に使用するようにプロジェクトプロパティを設定すると、常にそのモードで実行されます。 SQLite ADO.Netプロバイダーを使用しているときにこの問題が発生しました(32ビットバージョンのみを探していたため、x64システムで実行するとロードできませんでした)。

Corflagsを使用して、実行可能ファイルに32ビットビット(ha ha)フラグを設定できます。 ここに例があります 。要するに、あなたは実行します:

corflags /32BIT+ Assembly.exe-or.dll

VisualStudioを使用したSDKとともにインストールされたcorflags.exeが見つかります(installed in C:\Program Files\Microsoft SDK\6.0a or 7.0\bin)または、 Microsoft Windows SDK for Windows7および.NETFramework 3.5 SP1 から取得できます。

9
Joshua