.NET控制台应用程序32位与64位的区别

8
.NET应用程序是否需要构建为64位版本才能充分利用64位操作系统,或者32位版本也可以像在32位系统上一样使用。基本上,我们遇到了内存不足异常的问题,并建议在64位计算机上运行控制台应用程序可能会解决这个问题。问题是我们是否可以简单地将当前应用程序放在64位系统上,还是需要以64位方式重新构建应用程序。
3个回答

12

如果您的应用程序配置为构建“任何 CPU”平台,则它将在任何平台上适当运行。

只需确保它不使用任何 32/64 位特定的内容,否则您将遇到问题。

MSDN 文档在此处

有关缺点的讨论,请参见此处


10
截至 .Net 4.5 版本,这并不是绝对正确的。你还需要在项目设置中取消选中 "优先使用 32 位",请参见:http://blogs.microsoft.co.il/sasha/2012/04/04/what-anycpu-really-means-as-of-net-45-and-visual-studio-11/。 - gmn

5
如果它是为任何平台构建的(默认情况下),它将在64位操作系统上运行64位。话虽如此,仍然有潜在的问题需要注意。如果您通过p/invoke、C++/CLI或COM与本地代码接口,则需要将该代码移植到64位。如果应用程序是100%托管的,则可以正常工作。

1

"Any CPU" 是你的好朋友。

顺便说一下:

我们有一个特别大的 Trie 结构,超过了32位Windows的2GB内存空间。由于大部分结构都由对象引用组成,我们发现当移动到64位时,应用程序的内存需求几乎翻倍,需要约4GB。这是因为存储引用的内存宽度从32位变为64位。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接