質問

64ビットマシンでアプリケーションを32ビットとして強制的に実行するにはどうすればよいですか

コードはC#で記述されています。

役に立ちましたか?

解決

プロジェクトを右クリックして、プロパティを選択します。

プロパティで、ビルドタブを選択します。プラットフォームターゲットで、x86を選択します。

Ctrl + Shift + Sを押してすべてのファイルを保存し、ソリューションを右クリックして[クリーン]を選択します。古いバイナリを削除します。それ以降のビルドは32ビットでなければなりません

他のヒント

コマンドラインフォーム:

corflags application.exe /32BIT+ 

ClickOnce の制限:

32ビット(プロジェクトプロパティでx86をチェックする必要があります) 'launcher'アプリケーション(フォームではなくWindowsアプリケーション)を作成します:

    static void Main(string[] args)
    {
        // Load the assembly    
        string directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
        string assemblyName = Path.Combine(directory, "YourAnyCPUApplication.exe");
        Assembly assembly = Assembly.LoadFile(assemblyName);
        assembly.EntryPoint.Invoke(null, null);
    }

Any CPU プロジェクトのMainメソッドに次のコードを追加します。

        if (IntPtr.Size == 4)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            // etc...
        }
        else
        {
            // Launch application in 32-bit mode
            System.Diagnostics.Process.Start(Path.GetDirectoryName(Application.ExecutablePath) + @"\Your32BitApplicationLauncher.exe");
        }

これが役立つことを願っています:-)

Visual StudioのConfiguration Managerに移動すると、プラットフォームをx86またはx64に設定できます。

これがWinforms、コンソールアプリ、またはWindowsサービスであると仮定すると、任意のCPUではなくx86のexeをビルドする必要があります。 Configuration Managerにあります。

Visual Studio 11および.NET framwork 4.5以降には、 CPU 32ビット優先のオプションがありますそしてこれがそれ以来のデフォルトでした

結果のコードはすべてのプラットフォームで実行されますが、64ビットプラットフォームでは32ビットプロセスとして実行されます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top