Nie jest dla mnie jasne, w jaki sposób kompilator będzie wiedział, jak się kompilować w wersji 64-bitowej, kiedy będzie to konieczne. Skąd ma wiedzieć, kiedy może śmiało celować na 32-bit?
Jestem głównie ciekawy, w jaki sposób kompilator wie, na którą architekturę celować podczas kompilacji. Czy analizuje kod i podejmuje decyzję na podstawie tego, co znajdzie?
Odpowiedzi:
Microsoft ma wpis w blogu, co naprawdę oznacza AnyCPU od .NET 4.5 i Visual Studio 11 :
źródło
Oto prosta odpowiedź:
Uwaga: AnyCPU-32bitPreferred jest dostępny tylko w wersji .Net 4.5 i wyższej.
źródło
Project -> Properties -> Build tab -> Platform target
... ale pamiętaj, żeAnyCPU-32bitPreferred
jest on dostępny tylko w .Net w wersji 4.5 i wyższej. Dlatego domyślnie jestAnyCPU
.Powód jest taki: jeśli nie chcesz używać więcej pamięci w 64-bitowych aplikacjach. Co oznacza, że jeśli twoją aplikacją jest AnyCPU , chcesz działać jako 32-bitowy.
Aby dodać więcej, ustawienie w Visual Studio jest ukierunkowane na konkretny CLR:
Zobacz artykuł 64-bitowe aplikacje ( MSDN ).
źródło