Мне неясно, как компилятор автоматически узнает, что нужно для 64-битной компиляции, когда это необходимо. Как он узнает, когда он может уверенно нацеливаться на 32-битную версию?
Мне в основном интересно, как компилятор знает, на какую архитектуру ориентироваться при компиляции. Анализирует ли он код и принимает ли решение на основе того, что находит?
Ответы:
У Microsoft есть запись в блоге, что на самом деле означает AnyCPU, начиная с .NET 4.5 и Visual Studio 11 :
источник
Вот простой ответ:
Примечание. AnyCPU-32bitPreferred доступен только в .Net версии 4.5 и выше.
источник
Project -> Properties -> Build tab -> Platform target
... но учтите, чтоAnyCPU-32bitPreferred
он доступен только в .Net версии 4.5 и выше. Вот почему по умолчаниюAnyCPU
.Причина в том, что если вы не хотите использовать больше памяти с 64-битными приложениями. Это означает, что если ваше приложение AnyCPU , вы хотите работать как 32-битный.
Чтобы добавить больше, настройка в Visual Studio нацелена на конкретный CLR:
Пожалуйста, обратитесь к статье 64-битные приложения ( MSDN ).
источник