在VisualStudio2010中构建64位C#

在VisualStudio2010中构建64位C#,c#,visual-studio-2010,C#,Visual Studio 2010,我有一个64位的解决方案,我最近在Visual Studio 2010中从32位重新配置了它。我已将配置属性中的活动平台设置为x64,构建完成,没有任何问题。但是,当我从build-through-Dependency Walker运行可执行文件和DLL时,所有依赖项都是x64,只有一个是二进制it本身的依赖项,即x86。所以依赖性沃克抱怨,但二进制文件可以工作。二进制文件本身是否应该具有x86依赖项,以及它们是否是有效的x64应用程序 编辑:按照Hans Passant的建议,我通过Corfl

我有一个64位的解决方案,我最近在Visual Studio 2010中从32位重新配置了它。我已将配置属性中的活动平台设置为x64,构建完成,没有任何问题。但是,当我从build-through-Dependency Walker运行可执行文件和DLL时,所有依赖项都是x64,只有一个是二进制it本身的依赖项,即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

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

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


使用平台目标设置专门针对x64是完全不必要的,AnyCPU是首选,因为它将使您的程序在任何一种操作系统上工作。如果您想在事后查看设置或更改设置,请使用

我以前见过这一点,我相信这是意料之中的,但如果您能告诉我们x86依赖性是什么,这将有所帮助。它不是您自己构建的DLL,对吗?还请注意,依赖项遍历器本身有x86和x64两种版本。你运行的是哪一个?@MichaelGunter它同时涉及可执行文件和DLL。@JoelLucsy我运行的是64位,所以这应该不是问题。谢谢你的回答!我将用Corflags的输出更新我的问题。谢谢,Corflags最终引导我找到了正确的答案。这个问题与配置更改导致的输出路径更改有关,但Corflags帮助我解决了这个问题。