.net控制台应用程序32对64位

.NET中的应用程序是否需要以64位构建才能充分利用具有64位操作系统的计算机,或者它是否会像32位构建一样利用它。 基本上,我们遇到内存不足exception的问题,并建议在64位盒子上运行控制台应用程序“可能”解决问题。 问题是我们可以启动64个框并将当前应用程序抛出或者我需要以64位方式重建应用程序。

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

只要确保它不使用任何32/64位特定的东西,否则你会遇到问题。

MSDN文档在这里 。

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

如果它是为任何平台(默认)构建的,它将在64位操作系统上以64位运行。

话虽如此,仍有潜在的问题值得关注。 如果使用本机代码(通过p / invoke,C ++ / CLI或COM)进行接口,则需要将该代码移植到64位。 如果应用程序是100%管理,它只是工作。

“任何CPU”都是你的朋友。

作为旁白:

我们有一个特别大的Trie结构,超过了32位Windows的2GB内存空间。 由于大多数结构都包含对象引用,我们发现当移动到64位时,应用程序的内存需求几乎翻了一番,需要大约4GB。 这是因为存储引用的内存是64位宽而不是32位。