Visual Studio目标4.5.1和任何CPU在x64上以32位运行,但是当以4.5和任何CPU为目标时,它将在x64系统上以64位运行。 4.5.1中有什么变化使它在WOW模式下运行?
希望这是有道理的......
答案 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。