目标4.5.1和任何CPU在x64上运行为32位,4.5运行为64位,为什么?

时间:2014-01-30 16:51:10

标签: .net visual-studio .net-4.5

Visual Studio目标4.5.1和任何CPU在x64上以32位运行,但是当以4.5和任何CPU为目标时,它将在x64系统上以64位运行。 4.5.1中有什么变化使它在WOW模式下运行?

希望这是有道理的......

2 个答案:

答案 0 :(得分:27)

.NET 4.5.1中没有任何改变会影响进程的位数。

一个非常常见的陷阱是程序员过分关注平台名称。例如,在Build + Configuration Manager对话框中突出显示。托管项目的名称​​无关。它只对基于平台选择生成不同代码的项目类型有关。 C ++项目。

更糟糕的是,默认平台名称在不同的VS版本之间发生了变化。它一直是AnyCPU。然后在VS2010中将其更改为x86。这引起了巨大的混乱,因此在VS2012中它被改回了AnyCPU。

具有效果的真实设置位于C#IDE的Project + Properties,Build选项卡,Platform目标设置中。对于VS2012及更高版本的“首选32位”复选框。仅对于EXE项目,它首先运行并锁定位。如果选择x86(或勾选方框),则指示CLR使用x86抖动而不是x64抖动。

默认情况下,为新项目打开“首选32位”复选框。因此,您已经自动将AnyCPU的平台名称与正在运行的进程的实际位数不匹配。哦,快乐。

答案 1 :(得分:3)

我不确定Visual Studio何时添加了“首选32位”选项,但这已经过检查。希望有人不会做同样的noob移动我检查项目设置。谢谢@T.S.S。