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

Ric*_*ort 19 .net visual-studio .net-4.5

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

希望这有道理......

Han*_*ant 27

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

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

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

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

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