为什么'Any CPU'应用程序在x64机器上作为x86运行?

Bob*_*ill 15 .net c# clr 64-bit anycpu

我有一个Any CPU应用程序安装到Program Files(x86).在一台Windows 7 x64计算机上,它按预期运行x64,而在另一台Windows 7 x64计算机上运行为x86!

怎么会这样?我希望它在两台机器上以x64运行.可能是什么原因,我该怎样做才能始终以x64运行?

在我运行它的地方是否重要 - Program Files (x86)在我的情况下?

Dar*_*era 13

您可能链接了一些不是任何CPU的程序集,但包含本机代码(或编译为x86),这会导致整个过程回退到x86.

要了解程序集的编译方式,可能有用的相关Stack Overflow问题是如何确定.NET程序集是否是为x86或x64构建的?*.

注意:文件系统上可执行文件的位置根本不重要.

  • 狂野猜测:GAC中相同依赖程序集的不同版本.我遇到了TFS程序集的这个问题,我花了*days*来弄清问题. (4认同)
  • 但是,它是如何在另一台机器上作为 x64 运行的呢? (2认同)