.NETアプリケーションを強制的に32ビットとして実行するための環境変数
-
03-07-2019 - |
質問
.NETアプリケーションをx64バージョンのWindowsで32ビットアプリケーションとして実行するように設定できる環境変数があると言われました。それが何であるか、またはそれに関する参照を知っていますか? google-fuが今日失敗した(または存在しない)ことを恐れています。
Resolver One(.NETスプレッドシート)を使用していますが、実行可能ファイルを変更せずに32ビットのみの機能にアクセスしたいです。環境変数からこれを構成できる場合、必要なときに32ビット機能にアクセスできますが、必要なときに64ビットアプリとして実行することもできます。
(注:コンパイル時にアプリケーションを強制するのではなく、起動時にアプリケーションを32ビットとして実行するか64ビットとして実行するかを効果的に切り替えることができます。)
ありがとう
解決
Dino Veihland(Microsoft IronPython開発者)から回答がありました。まだテストする時間がありませんでした...
これはCOMPLUS_ENABLE_64BITです。 0に設定すると64ビットが無効になると思います。
環境変数として設定するか、名前を「Enable_64Bit」、タイプREG_DWORD、値0でHKLM \ Software \ Microsoft \ .NETFrameworkに追加して、グローバルに設定する必要があります(これが方法です)すべてのCOMPlus_ *変数が機能します)。これは、regキーに設定する必要があるほど十分に特殊な場合があります(プロセスを作成する前に実行する必要があります)。
他のヒント
環境変数ではありませんが、CoreFlagsツールを使用して切り替えるだけです。
32ビットに切り替えるには:
CorFlags.exe TheApp.exe /32BIT+
64ビットに戻るには:
CorFlags.exe TheApp.exe /32BIT-
これを確認してください: http://www.hanselman.com/blog/BackToBasics32bitAnd64bitConfusionAroundX86AndX64AndThe64Frame
プロジェクトプロパティダイアログbtwのターゲットプラットフォーム
これはすぐに試してみる予定です。基本的には32ビットで実行され、そこからターゲットアプリを起動するexeラッパーです。親の32ビットモードでは、AnyCPUでコンパイルされたバイナリを32ビットで強制的に実行する必要があります。 http://lostechies.com/gabrielschenker/2009/10/21/force-net-application-to-run-in-32bit-process-on-64bit-os/