8

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

4

3 回答 3

12

如果您的应用程序配置为为“Any CPU”平台构建,那么它将在任一平台上正常运行。

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

MSDN 文档在这里

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

于 2009-07-02T00:35:49.370 回答
5

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

话虽如此,仍有潜在的问题需要注意。如果您与本机代码交互(通过 p/invoke、C++/CLI 或 COM),则需要将该代码移植到 64 位。如果应用程序是 100% 托管的,它就可以正常工作。

于 2009-07-02T00:36:02.257 回答
1

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

作为旁白:

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

于 2009-07-02T00:42:09.437 回答