Подтвердить что ты не робот

Target 4.5.1 и любой процессор работает как 32 бит на x64, 4.5 работает как 64 бит, почему?

Целевая аудитория Visual Studio 4.5.1, а любой процессор работает как 32 бит на x64, но при настройке 4.5 и Any CPU он будет работать как 64 бит в системе x64. Что изменилось в 4.5.1, чтобы заставить его работать в режиме WOW?

Надеюсь, это имеет смысл...

4b9b3361

Ответ 1

Ничто не изменилось в .NET 4.5.1, которое влияет на битовость процесса.

Очень распространенная ловушка заключается в том, что программисты уделяют слишком много внимания имени платформы. Например, отображается в диалоговом окне Build + Configuration Manager. Это имя не имеет отношения к управляемым проектам. Это имеет значение только для проектов, которые генерируют код по-разному на основе выбора платформы. Проекты на С++.

Чем хуже то, что имя платформы по умолчанию изменилось между разными версиями VS. Он всегда был AnyCPU. Затем он был изменен на x86 в VS2010. Это вызвало огромную путаницу, поэтому оно было изменено на AnyCPU в VS2012.

Реальная настройка, которая имеет эффект, находится в Project + Properties, вкладке Build, целевой настройке платформы для С# IDE. Для VS2012 и вверх также установите флажок "Предпочтительно 32-бит". Только для проекта EXE он запускается первым и блокирует бит. Если вы выберете x86 (или отметьте галочкой), тогда CLR будет проинструктирован использовать джиттер x86 вместо джиттера x64.

Флажок "Предпочтительный 32-разрядный" включен по умолчанию для нового проекта. Таким образом, у вас уже есть автоматическое несоответствие между именем платформы AnyCPU и фактической битоностью текущего процесса. О, радость.

Ответ 2

Я не уверен, когда Visual Studio добавила опцию "Предпочитаю 32-разрядную", но это было проверено. Надеюсь, кто-то не сделает то же самое движение noob, которое я сделал, и проверьте настройки проекта. Спасибо @T.S.