16

x64 バージョンの Windows で .NET アプリケーションを強制的に 32 ビット アプリケーションとして実行するように設定できる環境変数があると聞いたことがあります。それが何であるか知っていますか、それに関する参照を知っていますか? 残念ながら、私の google-fu は今日失敗しました (または存在しません)。

私は Resolver One (.NET スプレッドシート) を使用しており、実行可能ファイルを変更せずに 32 ビットのみの機能にアクセスしたいと考えています。これを環境変数から構成できれば、必要に応じて 32 ビット機能にアクセスできるだけでなく、必要に応じて 64 ビット アプリとして実行することもできます。

(注: 事実上、アプリケーションをコンパイル時に強制するのではなく、起動時に 32 ビットまたは 64 ビットとして実行するかどうかを切り替えられるようにしたいと考えています。)

ありがとう

4

4 に答える 4

14

Dino Veihland (Microsoft IronPython 開発者) から回答がありました。まだテストする時間がありません...

それはCOMPLUS_ENABLE_64BITです。0に設定すると64ビットが無効になると思います。

環境変数として設定するか、HKLM\Software\Microsoft\.NETFramework に「Enable_64Bit」という名前、タイプ REG_DWORD、値 0 を追加してグローバルに設定できるようにする必要があります (これは、すべての COMPlus_*変数が機能します)。これは十分に特別である可能性があり(プロセスが作成される前に実行する必要があります)、regキーに設定する必要がありますが、完全にはわかりません。

于 2009-03-06T16:37:59.947 に答える
9

こちらのリンクはいかがでしょうか

完全な環境変数ではありませんが、CoreFlags ツールを使用して前後に切り替えます。

32 ビットに切り替えるには:

CorFlags.exe TheApp.exe /32BIT+ 

64 ビットに戻すには:

CorFlags.exe TheApp.exe /32BIT- 
于 2009-03-06T15:24:52.730 に答える
2

これをチェックしてください:http://www.hanselman.com/blog/BackToBasics32bitAnd64bitConfusionAroundX86AndX64AndTheNETFrameworkAndCLR.aspx

プロジェクトプロパティダイアログのターゲットプラットフォーム。

于 2009-03-06T15:06:58.170 に答える
0

すぐにこれを試してみます。基本的には、32 ビットで実行される exe ラッパーであり、そこから対象のアプリを起動します。親の 32 ビット モードは、AnyCPU でコンパイルされたバイナリを強制的に 32 ビットで実行する必要があります。http://lostechies.com/gabrielschenker/2009/10/21/force-net-application-to-run-in-32bit-process-on-64bit-os/を参照してください。

于 2012-05-18T20:32:37.830 に答える