Что делает любой процессор - предпочитает 32-битный вариант?
Хотя мне известно, что WinRT не может работать с exe и может работать только с приложениями Windows Store, есть несколько вопросов существуют на qaru.site/info/43183/..., которые задают один и тот же вопрос, и оба ссылаются на этот blog, который гласит:
В .NET 4.5 и Visual Studio 11 сыр перемещен. По умолчанию для большинства проектов .NET это снова AnyCPU, но есть более одного теперь это означает AnyCPU. Существует дополнительный подтип AnyCPU, "Любой CPU 32-bit preferred", который является новым значением по умолчанию (в целом, есть теперь пять вариантов для/компилятора С#: x86, Itanium, x64, anycpu и anycpu32bitpreferred). При использовании этого аромата AnyCPU, семантика:
- Если процесс выполняется в 32-разрядной системе Windows, он запускается как 32-разрядный обработать. IL компилируется в машинный код x86.
- Если процесс выполняется в 64-разрядной системе Windows, он запускается как 32-разрядный обработать. IL компилируется в машинный код x86.
- Если процесс выполняется в системе ARM Windows, он работает как 32-разрядный процесс. IL скомпилирован в машинный код ARM.
Однако после покупки моей Surface RT я создал программу Hello World, установил ее в Any CPU, проверил флаг Prefer 32 Bit, скомпилировал и скопировал ее на мою Surface. Когда я запускал программу, операционная система рассказала мне, что она не может запустить программу и что я должен смотреть на рынок, как и для любого x86/x64 exe. Точное отображаемое сообщение: "Это приложение не может работать на вашем ПК. Чтобы найти приложения для этого ПК, откройте" Магазин Windows ".
Итак, что это на самом деле делает и можно ли скомпилировать любое приложение CPU для Window RT на ARM?