28

刚刚安装了 Visual Studio 11 开发者预览版。在编译指定 AnyCPU 目标的托管(C#、VB)应用程序时,我在项目属性中看到一个名为“首选 32 位”的新选项。这似乎不是类库的选项,只是顶级应用程序。

这个标志表示什么?

4

4 回答 4

12

它可能表明该应用程序是 AnyCpu,但当 32 位可用时,它应该这样运行。这是有道理的 - 64 位应用程序使用更多内存,有时您只是不需要内存空间;)

于 2011-09-22T04:38:44.467 回答
2

编辑: 使用“任何 CPU 32 位首选”编译的应用程序与 x86、x64 和 ARM 兼容,而 x86 仅与 x86、x64 兼容,而不与 ARM 兼容。有关详细信息,请参阅

于 2014-12-13T19:38:40.003 回答
1

What AnyCPU Real Means As Of .NET 4.5 and Visual Studio 11中有一篇很好的文章。

对您的问题的简短回答是“当使用 AnyCPU 的那种风格时,语义如下:

如果进程在 32 位 Windows 系统上运行,则它作为 32 位进程运行。IL 被编译成 x86 机器码。如果进程在 64 位 Windows 系统上运行,则它作为 32 位进程运行。IL 被编译成 x86 机器码。如果进程在 ARM Windows 系统上运行,它将作为 32 位进程运行。IL 被编译为 ARM 机器码。那么,“任何 CPU 32 位首选”和“x86”之间的区别仅在于:编译为 x86 的 .NET 应用程序将无法在 ARM Windows 系统上运行,但“任何 CPU 32 位首选”应用程序将无法运行将成功运行。”

于 2016-04-05T15:50:50.693 回答
1

这是正确而简单的答案:

应用拱门。

于 2019-11-23T18:35:49.573 回答