Jaki jest cel ustawienia "preferuj 32-bit" w Visual Studio 2012 i jak to działa?

Tutaj wpisz opis obrazka

Nie jest dla mnie jasne, w jaki sposób kompilator automatycznie będzie wiedział, aby skompilować dla 64-bitów, kiedy będzie to konieczne. Skąd wie, kiedy może pewnie celować w 32-bitowe?

Jestem głównie ciekaw, skąd kompilator wie, na którą architekturę należy kierować podczas kompilacji. Czy analizuje kod i podejmuje decyzję w oparciu o to, co znajduje?

Author: Lex Li, 2012-08-22

2 answers

To tak dziwne, że nikt nie linkuje do wpisu na bloguCo tak naprawdę oznacza AnyCPU od. NET 4.5 i Visual Studio 11:

W. NET 4.5 i Visual Studio 11 ser został przeniesiony. Na domyślnym dla większości projektów. NET jest ponownie AnyCPU, ale jest więcej niż jedno znaczenie dla AnyCPU teraz. Istnieje dodatkowy Podtyp AnyCPU, "Dowolny procesor 32-bitowy preferowany", czyli nowa domyślna (ogólnie rzecz biorąc, tam jest teraz pięć opcji dla kompilatora / platform C# przełącznik: x86, Itanium, x64, anycpu i anycpu32bitpreferred). Podczas korzystania z " preferuj 32-Bit" aromat AnyCPU, semantyka jest następująca:

  • jeśli proces działa na 32-bitowym systemie Windows, działa jako 32-bitowy proces. IL jest kompilowany do kodu maszynowego x86.
  • jeśli proces działa na 64-bitowym systemie Windows, działa jako proces 32-bitowy. IL jest kompilowany do kodu maszynowego x86.
  • jeśli proces działa na systemie ARM Windows, działa jako 32-bitowy proces. IL jest kompilowany do kodu maszynowego ARM.

Różnica między "dowolny procesor 32-bitowy" a " x86 " jest tylko to: aplikacja. NET skompilowana do x86 nie uruchomi się na ARM systemu Windows, ale "dowolny procesor 32-bitowy" aplikacja będzie Uruchom pomyślnie.

 193
Author: Lex Li,
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
2018-08-10 18:18:05

Powód jest taki: jeśli nie chcesz używać więcej pamięci z aplikacjami 64-bitowymi. Co oznacza, że jeśli Twoją aplikacją jest AnyCPU , chcesz uruchomić jako 32-bitowy.

[[0]} aby dodać więcej, ustawienie w Visual Studio jest ukierunkowane na konkretny CLR:

Visual Studio instaluje 32-bitową wersję CLR na komputerze x86, a zarówno 32-bitową, jak i odpowiednią 64-bitową wersję CLR na 64-bitowym komputerze z systemem Windows. (Ponieważ Visual Studio jest aplikacją 32-bitową, gdy jest zainstalowany na 64-bitowym systemie, działa pod WOW64.)

Proszę zapoznać się z artykułem 64-aplikacje bitowe (MSDN ).

 0
Author: Peru,
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
2013-02-10 04:41:07