c# .net x86 64bit x86-64

Ejecución de una aplicación C#de 32 bits en una máquina de 64 bits



.net x86 (6)

¿Cómo obligo a mi aplicación a ejecutarse como 32 bits en una máquina de 64 bits?

El código está escrito en C #.


Haga clic derecho en su proyecto y seleccione propiedades.

En propiedades, selecciona la pestaña de compilación. En el objetivo de la plataforma, seleccione x86.

Presiona Ctrl + Shift + S para guardar todos los archivos, haz clic con el botón derecho en la solución y selecciona "Limpiar" para eliminar los archivos binarios antiguos. Cualquier compilación posterior debería ser de 32 bits


Si va a Configuration Manager en Visual Studio, puede configurar la plataforma en x86 o x64.


Suponiendo que se trata de un Winforms, una aplicación de consola o un servicio de Windows, debe compilar el exe para x86 en lugar de cualquier CPU. Está en el Administrador de configuración.


Formulario de línea de comandos:

corflags application.exe /32BIT+


Así es como lo hice cuando no pudimos cambiar el código existente de Any CPU to x86 debido a una limitación de ClickOnce :

Cree una aplicación ''launcher'' de 32 bits (x86 debe verificarse en las propiedades del proyecto) (aplicación Windows pero no forma):

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); }

Agregue el siguiente código al método principal en el proyecto Any CPU :

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"); }

Espero que esto ayude :-)


Visual Studio 11 y .NET framwork 4.5 o superior tienen una opción para Any CPU 32-bit preferred y este fue el predeterminado desde entonces

El código resultante se ejecutará en cualquier plataforma pero en plataformas de 64 bits se ejecuta como procesos de 32 bits