我有一个64位解决方案,我最近从32位重新配置 - 都在Visual Studio 2010中。我已将配置属性中的Active Platform设置为x64,并且构建完成而没有抱怨。但是,当我通过Dependency 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位进程运行?
答案 0 :(得分:1)
Dependency Walker在很长一段时间内都没有得到维护。它不知道有关托管程序集的bean,也不知道运行时支持中用于将标记为包含32位代码的EXE转换为64位进程的special trick。
使用平台目标设置专门针对x64是完全没必要的,AnyCPU是首选,因为它将使您的程序适用于任何一种操作系统。如果您想在之后查看设置或更改设置,请使用Corflags.exe