W .NET opcja kompilatora "Cel platformy: dowolny procesor" pozwala na uruchomienie zestawu .NET w postaci 64 bit na maszynie x64 i 32 bit na maszyna x86. Można również zmusić zespół do uruchomienia jako x86 na maszynie x64 za pomocą opcji kompilatora "Platform Target: x86".Wymuś CLR x86 na zespole "Any CPU" .NET
Czy można uruchomić zespół z flagą "Any CPU", ale określić, czy powinien on działać w CLR x86 lub x64? Zwykle ta decyzja jest podejmowana przez program ładujący CLR/OS (jak to rozumiem) w oparciu o zgodność systemu bazowego.
Próbuję napisać aplikację C# .NET, która może wchodzić w interakcje z (czytaj: kod wtrysku) do innych działających procesów. Procesy x64 mogą wstrzykiwać tylko do innych procesów x64, a to samo z x86. Najlepiej byłoby skorzystać z kompilacji JIT i opcji Any CPU, aby umożliwić użycie pojedynczej aplikacji do wstrzykiwania do procesów x64 lub x86 (na maszynie x64).
Chodzi o to, że aplikacja zostanie skompilowana jako Dowolny procesor. Na komputerze z procesorem x64 byłby uruchamiany jako x64. Jeśli proces docelowy to x86, powinien się uruchomić ponownie, zmuszając CLR do uruchomienia go jako x86. czy to możliwe?
Tak, jestem świadom tego, że możesz go zmusić, owijając go w zespół uruchamiający x86, ale zastanawiałem się, czy możesz dynamicznie wymusić go na zestawach skompilowanych dla "dowolnego procesora". Mimo to dzięki, prawdopodobnie powrócę do tego, jeśli nie znajdę niczego innego. Obdarowałby, ale za mało rep. – jeffora
Procesy są albo 64-bitowe, albo 32-bitowe. Jeśli zestaw jest ładowany w procesie 32-bitowym i jest zbudowany jako Dowolny procesor, będzie JITed jako 32-bitowy, w procesie 64-bitowym będzie to JITed jako 64. W jaki sposób planujesz utworzyć zespół, który hostuje twoje złożenia? – jnoss