在 Visual Studio 2010 中构建 64 位 C#



我有一个64位解决方案,我最近从32位重新配置了它 - 两者都在Visual Studio 2010中。我已将配置属性中的活动平台设置为 x64,并且构建完成,没有投诉。但是,当我通过依赖 Walker 从构建运行可执行文件和 dll 时,所有依赖项都是 x64,除了一个用于二进制 it-self 的依赖项,即 x86。所以依赖沃克抱怨,但二进制文件有效。二进制文件是否应该对它们自己具有 x86 依赖项,然后它们是否是有效的 x64 应用程序?

编辑:我按照Hans Passant的建议通过Corflags运行了我的可执行文件.exe它呈现了以下输出:

Version   : v4.0.30319
CLR Header: 2.5
PE        : PE32
CorFlags  : 3
ILONLY    : 1
32BIT     : 1
Signed    : 0

32BIT 标志是否意味着它作为 32 位进程运行?

Dependency Walker已经很久没有维护了。 它不知道有关托管程序集的 bean,也不知道运行时支持中使用的特殊技巧,这些技巧将标记为包含 32 位代码的 EXE 转换为 64 位进程。

使用平台目标设置专门针对 x64 是完全没有必要的,AnyCPU 是首选,因为它将使您的程序在任一版本的操作系统上运行。 如果您想事后查看设置或更改设置,请使用 Corflags.exe

最新更新