2012-06-14 27 views

回答

5

为什么会出现这种情况?

对于大多数应用程序,构建为32位实际上更好。 64位提供了很多好处,并且在大多数情况下存在一些明显的缺点(更高的内存使用率,更复杂的多平台依赖管理,更糟糕的调试体验等)。但是,如果你的应用需要能够使用大量的内存,那么当然64位具有优势(并且很容易在VS中切换),但是大多数应用不属于这种情况。

这就是为什么VS 2012中的新默认值是使用AnyCPUPrefer32Bit而不是AnyCPU的应用程序。

0

如果您选择指定一个CPU,则会自动将.exe限制到一个平台或另一个平台。

里面很少有任何理由这样做,除非你绝对有32位依赖性:

换句话说,没有“性能“问题。真正的问题是“兼容性”。如果您加载任何32位组件,并且您使用的是64位平台,那么您必须调用WOW64。 CLRTIMAGETYPE允许你这样做。

+2

不完全知道这是如何回答这个问题的...... – BoltClock

+1

当我读到问题时,问题在于VS选择默认情况下特定于平台的设置。 –

+2

另外 - 通过选择x86,您不会将.exe限制为x86。 64位Windows将在WOW64下运行x86可执行文件而不会出现问题。挑选x64确实有限制,但所有其他选项都不会。 –

2

根据此bug report,这是因为在使用x64代码的x64机器上编辑并继续时出现问题。通过将其更改为x86,编辑并继续正常工作。

切换到AnyCPU应该没有危险。我总是这样做。

相关问题