C# 任何CPU-首选32位
“任意CPU首选32位”选项的作用是什么 虽然我知道WinRT不能处理exe,只能运行Windows应用商店应用程序,但有几个问题提出了相同的问题,两个问题都提到了以下内容: 在.NET4.5和VisualStudio11中,奶酪被移动了。默认值 对于大多数.NET项目来说,仍然是AnyCPU,但有不止一个 现在对任何CPU都有意义。AnyCPU还有一个子类型,“Any CPU 32位首选”,这是新的默认设置(总的来说,有 现在/platform C#编译器开关有五个选项:x86、安腾、, x64、anycpu和anyCPU32位(首选)。当使用那种味道的 在AnyCPU中,语义如下所示:C# 任何CPU-首选32位,c#,visual-studio-2012,C#,Visual Studio 2012,“任意CPU首选32位”选项的作用是什么 虽然我知道WinRT不能处理exe,只能运行Windows应用商店应用程序,但有几个问题提出了相同的问题,两个问题都提到了以下内容: 在.NET4.5和VisualStudio11中,奶酪被移动了。默认值 对于大多数.NET项目来说,仍然是AnyCPU,但有不止一个 现在对任何CPU都有意义。AnyCPU还有一个子类型,“Any CPU 32位首选”,这是新的默认设置(总的来说,有 现在/platform C#编译器开关有五个选项:x86、安腾、, x6
- 如果进程在32位Windows系统上运行,则它将作为32位Windows系统运行 过程IL编译为x86机器代码
- 如果进程在64位Windows系统上运行,则它将作为32位Windows系统运行 过程IL编译为x86机器代码
- 如果进程在ARM Windows系统上运行,它将作为32位进程运行。IL被编译为ARM机器代码。
那么,这实际上是做什么的呢?是否可以为ARM上的Window RT编译任何CPU应用程序?仅基于您指定的引用,它表示以下含义:
- 如果CPU支持32位处理,那么最终的机器代码将是32位(ARM或x86不重要)
- 如果不是,则机器代码将为64位
免责声明:我不是专家,这只是我在过去6个月左右读到的各种博客文章中的内容,Windows RT需要对exe文件进行签名才能运行。但如果您选择RT,则只要Windows on ARM(.NET或本机ARM)应用程序支持,RT就可以运行任何exe文件
有关此选项的更多信息,请参见操作系统告诉您无法运行该程序的原因是什么?是由于CPU不兼容,还是其他原因?更新问题。显示的确切消息是:“此应用程序无法在您的电脑上运行。若要查找此电脑的应用程序,请打开Windows应用商店。”尝试运行其他exe(如Chrome安装程序)时会显示相同的消息。Windows RT无法运行桌面应用程序(正常的.exe文件)。您必须创建一个marketplace应用程序才能在表面上运行。@m0sa:正确,这也是我的理解。然而,当我提到博客帖子和StackOverflow问题时,我决定研究一下任何CPU-32位首选的实际功能。这篇博文在互联网和StackOverflow上的几个地方都被引用,因此,我试图确定它是否有一些优点。只要获得开发者许可证:这样你就可以将你的应用程序部署到你的机器上W64是服务器上的可选安装如果用户有一天可以选择是否内存不足,只想让应用程序针对小数据运行,那么32位就足够了,再过一天,他就可以运行完全支持64位的AnyCPU应用程序了。或者使用DirectShow(或其他类似框架)的应用程序可以(将!)在使用x86或x64时表现完全不同。但我的理解是,Ia64与常规x64不兼容——你必须特别针对Ia64,对吗?关于是先使用32位还是先使用64位的争论还没有真正好的答案。双方都有利弊,因为64位处理器处理64位变量的速度比32位变量快,但它们占用更多内存等等。“奶酪已经被移动了”——链接到提出这个问题的博客帖子可能会造成堆栈溢出;-)