Variable de entorno para forzar que las aplicaciones .NET se ejecuten como 32 bits
-
03-07-2019 - |
Pregunta
Me han dicho que hay una variable de entorno que puede configurar para forzar que las aplicaciones .NET se ejecuten como aplicaciones de 32 bits en versiones x64 de Windows. ¿Sabes de qué se trata, o sabes de alguna referencia? Me temo que mi google-fu me ha fallado hoy (o no existe).
Estoy usando Resolver One (una hoja de cálculo .NET) y quiero acceder a alguna funcionalidad de solo 32 bits sin modificar el ejecutable. Si puedo configurar esto desde una variable de entorno, entonces puedo acceder a la funcionalidad de 32 bits cuando sea necesario, pero también ejecutarlo como una aplicación de 64 bits cuando sea necesario.
(NOTA: efectivamente quiero poder cambiar si una aplicación se ejecuta como 32 bits o 64 bits en el momento del lanzamiento en lugar de forzarla en el momento de la compilación).
Gracias
Solución
He recibido una respuesta de Dino Veihland (desarrollador de Microsoft IronPython). Todavía no he tenido tiempo de probarlo ...
Es COMPLUS_ENABLE_64BIT. Creo que establecerlo en 0 deshabilita 64 bits.
Debería poder configurarlo como una variable de entorno o agregar un valor a HKLM \ Software \ Microsoft \ .NETFramework con el nombre '' Enable_64Bit '', el tipo REG_DWORD y el valor 0 para configurarlo globalmente (así es cómo todos los COMPlus_ * vars funcionan). Este puede ser lo suficientemente especial (tiene que ejecutarse antes de crear el proceso) que debe configurarse en la clave reg, pero no estoy completamente seguro.
Otros consejos
¿Qué tal este enlace
No es una variable de entorno, pero solo usa la herramienta CoreFlags para cambiar de un lado a otro.
Para cambiar a 32 bits:
CorFlags.exe TheApp.exe /32BIT+
Para volver a 64 bits:
CorFlags.exe TheApp.exe /32BIT-
Verifique esto: http://www.hanselman.com/blog/BackTondAf.Af.Af.Af.Afrf. / a>
plataforma de destino en el diálogo de propiedad del proyecto por cierto.
Voy a probar este pronto, básicamente un contenedor exe que se ejecuta en 32 bits, luego inicia su aplicación específica desde allí. el modo de 32 bits del padre debería forzar a un binario compilado AnyCPU a ejecutarse en 32 bits. ver http://lostechies.com/gabrielschenker/2009/10/21/force-net-application-to-run-in-32bit-process-on-64bit-os/