“首选32位”编译器标志对Visual Studio(C#,VB)意味着什么?
刚安装了Visual Studio 11开发人员预览版。 在编译指定了AnyCPU目标的托管(C#,VB)应用程序时,我在项目属性中看到一个名为“Prefer 32-bit”的新选项。 这似乎不是类库的选项,只是顶级应用程序。
这个标志表示什么?
它可能表明该应用程序是AnyCpu,但当32位可用时,它应该如此运行。 这是有道理的 – 64位应用程序使用更多内存,有时你只是不需要内存空间;)
编辑:使用“任何32位首选的CPU”编译的应用程序与x86,x64和ARM兼容,而x86仅与x86,x64兼容,而不兼容ARM。 详情请见此 。
What AnyCPU真的意味着.NET 4.5和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位首选”应用程序将成功运行。“
- 如何使用C#下载并解压缩gzip文件?
- 如何使用C#.NET中的#region / #endregion(大纲)等效组织xml数据
- UWP Windowsapp store应用上的TLS客户端证书身份validation
- WinForms:找到最小化表单的大小而不使用FormWindowState.Normal
- MOQ – 模拟MVC控制器的Response.Cookies.Clear()
- SQL:在VarBinary列上按顺序执行UPDATE .WRITE
- 如何为没有x值的一系列数据创建Box Plot
- 登录时处理防伪造错误,同时已登录? ASP.NET MVC
- 使用深度嵌套的依赖项进行unit testing和dependency injection