2012-06-08 29 views
5

Estamos utilizando un ensamblado de terceros que parece compilarse como AnyCPU.Ejecute AnyCPU como 32 bits en sistemas de 64 bits

Sin embargo, tenemos una serie de instalaciones de nuestra aplicación donde esto genera problemas. Este ensamblado de terceros hace uso de la biblioteca de acceso a datos de Oracle y no funcionará en máquinas de 64 bits donde solo se instala un cliente Oracle de 32 bits.

Instalación de un cliente adicional Oracle de 64 bits sería posible, pero también es caro (toma mucho tiempo, muchas máquinas tienen que ser actualizados, etc.)

¿Hay una manera de forzar un montaje Cualquier CPU .Net para ejecutar como 32 bits sin recompilar?

Respuesta

5

Eche un vistazo a CorFlags.exe.

Ejemplo (pabellón conjunto 32 bits):

corflags [path]\[YourAssembly.exe] /32Bit+ 
+0

+1. Un ejemplo es http://www.lextm.com/2009/03/sharpdevelop-on-x64-windows-issue.html –

+0

Todo lo que cambia los indicadores en el ensamblado de terceros es un error de tiempo de ejecución si se carga en un 64 proceso de bit (vea doco https://msdn.microsoft.com/en-us/library/ms164699(v=vs.110).aspx). OP ya * tiene * un error de tiempo de ejecución, así que no puedo ver que esto ayude mucho: - /. Necesita cambiar los indicadores en el EXE que inicia el proceso, y si bien podría usar corflags para esto (es decir, en el campo), a largo plazo es masivamente simple solo para reorientar a x86 en tiempo de compilación – piers7

+0

@ piers7 * "Necesita cambiar los indicadores en el EXE que inicia el proceso" *: Sí, eso es lo que dice mi respuesta. * "y aunque podría usar corflags para esto (es decir, en el campo)" *: Sí, eso es lo que OP solicitó. – sloth

5

Suponiendo que usted está construyendo el .EXE que tiene una referencia a un montaje de terceros Cualquier CPU que necesita para construir su proyecto como x86. Este proyecto puede hacer referencia a los ensamblados de AnyCPU, pero al estar marcado como x86 se ejecutará como un proceso de 32 bits tanto en Windows de 32 bits como de 64 bits.

+0

Esta es una mejor respuesta para el problema real de OP – piers7

Cuestiones relacionadas