C# .net控制台应用程序32对64位
NET中的应用程序是否需要以64位构建才能充分利用带有64位操作系统的机器,或者它是否会像32位构建一样利用它。基本上,我们有一个内存不足异常的问题,建议在64位机器上运行console应用程序,这“可能”解决了这个问题。问题是,我们是否可以旋转一个64位的盒子并将当前的应用程序扔到上面,或者我是否需要以64位的方式重新构建应用程序。如果您的应用程序配置为针对“任意CPU”平台构建,那么它将在其中任何一个平台上正常运行 只需确保它没有使用任何32/64位特定的东西,否则会遇到问题 MSDN文档C# .net控制台应用程序32对64位,c#,.net,build,64-bit,32-bit,C#,.net,Build,64 Bit,32 Bit,NET中的应用程序是否需要以64位构建才能充分利用带有64位操作系统的机器,或者它是否会像32位构建一样利用它。基本上,我们有一个内存不足异常的问题,建议在64位机器上运行console应用程序,这“可能”解决了这个问题。问题是,我们是否可以旋转一个64位的盒子并将当前的应用程序扔到上面,或者我是否需要以64位的方式重新构建应用程序。如果您的应用程序配置为针对“任意CPU”平台构建,那么它将在其中任何一个平台上正常运行 只需确保它没有使用任何32/64位特定的东西,否则会遇到问题 MSDN文档
有关缺点的一些讨论,请参见如果它是为任何平台构建的(默认),它将在64位操作系统上以64位运行 尽管如此,仍有一些潜在问题需要关注。如果使用本机代码(通过p/invoke、C++/CLI或COM)进行接口,则需要将该代码移植到64位。如果应用程序是100%管理的,它就可以正常工作。“任何CPU”都是你的朋友 旁白:
我们有一个特别大的结构,超过了32位Windows的2GB内存空间。由于大多数结构都由对象引用组成,我们发现当移动到64位时,应用程序的内存需求几乎翻了一番,大约需要4gb。这是因为存储引用的内存是64位宽,而不是32位宽。从.Net 4.5开始,这不是严格意义上的情况,您还必须在项目设置中取消选中“首选32位”,请参阅: