编译为 AnyCPU 生成在 64 位机器上设置了 32BIT 标志的程序集
Compiling as AnyCPU produces assembly with 32BIT flag set on 64-bit machine
我在 Visual Studio 2013 年在 64 位机器上创建了一个全新的 .NET 4.5 WinForm 项目。编译后,我运行 corflags in the .exe and the 32BIT flag is set.
Version : v4.0.30319
CLR Header: 2.5
PE : PE32
CorFlags : 131075
ILONLY : 1
32BIT : 1
Signed : 0
当我查看任务管理器时,它也被标记为 32 位进程。
我没有添加任何可能会强制它在 32 位模式下 运行 的引用。我查看了项目文件,也没有发现任何可疑的东西。
我可以 运行 corflags /32BIT-
在程序集上,它 运行 作为 64 位进程就好了。
什么可能导致它编译为 32 位可执行文件?
在项目中 属性 Pages 是一个名为 "Build" (A) 的页面。
"Platform Target" 字段 (B) 下是 "Prefer 32bit" 字段 (C)。
您可以切换它以从 corflags 中删除 32 位标志。
(图片来自 VS 2015)
我在 Visual Studio 2013 年在 64 位机器上创建了一个全新的 .NET 4.5 WinForm 项目。编译后,我运行 corflags in the .exe and the 32BIT flag is set.
Version : v4.0.30319
CLR Header: 2.5
PE : PE32
CorFlags : 131075
ILONLY : 1
32BIT : 1
Signed : 0
当我查看任务管理器时,它也被标记为 32 位进程。
我没有添加任何可能会强制它在 32 位模式下 运行 的引用。我查看了项目文件,也没有发现任何可疑的东西。
我可以 运行 corflags /32BIT-
在程序集上,它 运行 作为 64 位进程就好了。
什么可能导致它编译为 32 位可执行文件?
在项目中 属性 Pages 是一个名为 "Build" (A) 的页面。
"Platform Target" 字段 (B) 下是 "Prefer 32bit" 字段 (C)。
您可以切换它以从 corflags 中删除 32 位标志。