Forzar x86 CLR en un ensamblaje .NET de 'Cualquier CPU'

En .NET, la opción del compilador 'Plataforma objetivo: cualquier CPU' permite que un ensamblado .NET se ejecute como 64 bits en una máquina x64, y 32 bits en una máquina x86. También es posible forzar que un ensamblaje se ejecute como x86 en una máquina x64 utilizando la opción del compilador 'Destino de plataforma: x86'.

¿Es posible ejecutar un ensamblaje con el indicador 'Cualquier CPU', pero determinar si se debe ejecutar en el CLR x86 o x64? Normalmente, esta decisión la toma CLR / OS Loader (como entiendo) en base a la bitness del sistema subyacente.

Estoy tratando de escribir una aplicación C # .NET que pueda interactuar con (leer: inyectar código) en otros procesos en ejecución. Los procesos x64 solo pueden inyectarse en otros procesos x64, y lo mismo con x86. Idealmente, me gustaría aprovechar la compilación JIT y elCualquier CPU Opción para permitir que una sola aplicación se use para inyectar en procesos x64 o x86 (en una máquina x64).

La idea es que la aplicación se compile comoCualquier CPU. En una máquina x64, funcionaría como x64. Si el proceso objetivo es x86, debería relanzarse a sí mismo, obligando al CLR a ejecutarlo como x86. es posible?

Respuestas a la pregunta(4)

Su respuesta a la pregunta