我刚安装了Visual Studio 11开发者预览版。在使用AnyCPU目标编译托管(C#,VB)应用程序时,我看到了一个名为“Prefer 32-bit”的新选项在项目属性中。这似乎不是类库的选项,只适用于顶层应用程序。
这个标志表示什么?
我刚安装了Visual Studio 11开发者预览版。在使用AnyCPU目标编译托管(C#,VB)应用程序时,我看到了一个名为“Prefer 32-bit”的新选项在项目属性中。这似乎不是类库的选项,只适用于顶层应用程序。
这个标志表示什么?
这很可能表示该应用程序是AnyCpu,但当32位可用时,应以32位方式运行。这是有道理的- 64位应用程序使用更多内存,有时您只需要较小的内存空间 ;)
编辑: 使用“Any CPU 32 位优先”编译的应用程序与 x86、x64 和 ARM 兼容,而 x86 仅与 x86、x64 兼容,不与 ARM 兼容。有关详情,请参见此处。
在.NET 4.5和Visual Studio 11中AnyCPU的真正含义这篇文章中有很好的内容。
简短回答你的问题是:“使用这种类型的AnyCPU时,语义如下:
如果进程运行在32位Windows系统上,则作为32位进程运行。IL编译为x86机器码。 如果进程运行在64位Windows系统上,则作为32位进程运行。IL编译为x86机器码。 如果进程运行在ARM Windows系统上,则作为32位进程运行。IL编译为ARM机器码。 因此,“Any CPU 32位首选”和“x86”的区别仅在于:针对x86编译的.NET应用程序无法在ARM Windows系统上运行,但“Any CPU 32位首选”应用程序将成功运行。”