Any CPU - Prefer 32 bit选项是什么意思?
虽然我知道WinRT不能处理exe文件,只能运行Windows Store应用程序,但有几个问题存在于StackOverflow上,询问同样的问题,并且都引用了这个博客,该博客中提到:
在.NET 4.5和Visual Studio 11中,奶酪已经被移动。大多数.NET项目的默认值再次为AnyCPU,但是现在有了更多含义的AnyCPU。新增了一个子类型的AnyCPU,“Any CPU 32-bit preferred”(任意CPU优选32位),这是新的默认值(总体上,/platform C#编译器开关现在有五个选项: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一样查找市场。显示的确切消息是:“此应用无法在您的PC上运行。要查找适用于此PC的应用,请打开Windows Store。”那么这实际上是做什么的?是否可能为ARM上的Window RT编译Any CPU应用程序?