В .NET параметр компилятора "Платформа целевой: любой процессор" позволяет сборке .NET работать как 64 бит на машине x64, так и 32 бит на машине x86. Также возможно заставить сборку работать как x86 на машине x64 с использованием компилятора "Платформа Target: x86".
Возможно ли запустить сборку с флагом "Любой процессор", но определить, следует ли ее запускать в CLR x86 или x64? Обычно это решение выполняется загрузчиком CLR/OS (как я понимаю) на основе битности базовой системы.
Я пытаюсь написать приложение С#.NET, которое может взаимодействовать с (прочитайте: вставляйте код) в другие запущенные процессы. Процессы x64 могут только внедряться в другие процессы x64 и то же самое с x86. В идеале я хотел бы воспользоваться компиляцией JIT и опцией Any CPU, чтобы можно было использовать одно приложение для ввода в процессы x64 или x86 (на машине x64).
Идея заключается в том, что приложение будет скомпилировано как любой процессор. На машине x64 она будет работать как x64. Если целевой процесс равен x86, он должен перезапустить себя, заставляя CLR запускать его как x86. Возможно ли это?