Kompilowanie C# dla 32/64 bitów, czy dla dowolnego procesora? [duplikat]

Możliwy duplikat:
Visual Studio" dowolny procesor " target

Zauważyłem, że podczas kompilacji kodu C# W VS, są zazwyczaj opcje kompilacji dla Systemów 32/64 bitowych, a jest też jedna do kompilacji dla dowolnego procesora.

Jaka jest różnica między tymi dwoma opcjami? Czy wybór dowolnego procesora kompiluje się tylko do pośredniego kodu bajtowego, podczas gdy pierwsza opcja kompiluje się do kodu maszynowego (wydaje mi się to mało prawdopodobne)? Albo coś else?

Author: Community, 2011-03-08

2 answers

Na 32-bitowej maszynie:

  • Każdy procesor: działa jako 32-bitowy proces, może załadować Wszystkie zespoły procesora i x86, otrzyma BadImageFormatException jeśli spróbuje załadować x64.

  • X86 : taki sam jak każdy procesor .

  • X64: BadImageFormatException zawsze.

Na 64-bitowej maszynie:

  • Każdy proces : działa jako 64-bitowy proces, może załadować dowolny proces i x64 assemblies, otrzyma BadImageFormatExceptionjeśli spróbuje załadować x86 assembly.

  • X86: działa jako 32-bitowy proces, może załadować dowolny procesor i x86, otrzyma BadImageFormatException jeśli spróbuje załadować x64.

  • X64 : taki sam jak każdy procesor.

Jest to kompilator JIT , który generuje kod asemblera, który jest zgodny z żądanym celem na podstawie tego znacznika.

 163
Author: Jaroslav Jandek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-08 08:10:20

X86-Twoje oprogramowanie zawsze będzie działać w trybie 32-bitowym, zarówno na systemach 32-bitowych, jak i 64-bitowych.

X64-Twoje oprogramowanie zawsze będzie działać w trybie 64-bitowym, będzie działać na systemie 64-bitowym, ale nie będzie działać na systemie 32-bitowym.

Dowolny procesor-Twoje oprogramowanie będzie działać zgodnie z Twoim systemem operacyjnym. jeśli masz 32-bitowy system operacyjny, kod będzie działał w trybie 32-bitowym, jeśli masz 64-bitowy system operacyjny, kod będzie działał w trybie 64-bitowym.

 14
Author: Gilad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-08 07:54:22