Microsoft有一篇博客文章 * What AnyCPU Really Means As Of .NET 4.5 and Visual Studio 11 *: 在.NET 4.5和Visual Studio 11中,奶酪已经被移走了。大多数.NET项目的默认值还是AnyCPU,但是AnyCPU现在有了不止一种含义。AnyCPU还有一个额外的子类型,“Any CPU 32-bit preferred”,这是新的默认值(总的来说,/platform C#编译器开关现在有五个选项:x86、Itanium、x64、anycpu和anycpu 32 bitpreferred)。使用AnyCPU的“首选32位”风格时,语义如下:
4条答案
按热度按时间esyap4oy1#
Microsoft有一篇博客文章 * What AnyCPU Really Means As Of .NET 4.5 and Visual Studio 11 *:
在.NET 4.5和Visual Studio 11中,奶酪已经被移走了。大多数.NET项目的默认值还是AnyCPU,但是AnyCPU现在有了不止一种含义。AnyCPU还有一个额外的子类型,“Any CPU 32-bit preferred”,这是新的默认值(总的来说,/platform C#编译器开关现在有五个选项:x86、Itanium、x64、anycpu和anycpu 32 bitpreferred)。使用AnyCPU的“首选32位”风格时,语义如下:
因此,“任何CPU 32位首选”和“x86”之间的区别仅在于:编译为x86的.NET应用程序将无法在ARM Windows系统上运行,但“任何CPU 32位首选”应用程序将成功运行。
vecaoik12#
这里有一个简单的答案:
**注意:**AnyCPU-32 bitPreferred仅在.Net版本4.5和更高版本中可用。
vqlkdk9b3#
当我选中32位首选项时,当在我们的服务器上运行时,它试图使用32位数据库驱动程序而不是我们安装的64位驱动程序,因此当我们运行它时,它没有连接到数据库,因此查询由于连接失败而失败。
pzfprimi4#
理由是:如果你不想在64位应用程序中使用更多的内存。这意味着,如果你的应用程序是 AnyCPU,你想以32位运行。
若要加入更多,Visual Studio中的设定会以特定的CLR为目的:
Visual Studio会在x86计算机上安装32比特版本的CLR,并在64比特Windows计算机上同时安装32比特版本和适当的64比特版本的CLR(因为Visual Studio是32比特应用程序,所以当它安装在64比特系统上时,会在WOW64下执行)。
请参阅文章 64-bit Applications(MSDN)。