我在Visual Studio 2013中创建了一个应用程序,我想将其构建为64位应用程序。我将项目配置为64位应用程序,然后执行here中的步骤。现在的问题是:
如果我从VS运行应用程序,它可以正常工作(作为64位应用程序)。
如果我运行在bin中生成的可执行文件,它就像32位应用程序一样。
重要提及:
应用程序必须获取所有正在运行的进程并将其显示在具有进程名称和文件名(可执行文件的路径)的网格中。
当我从VS
运行时,这就是网格的样子当我从bin中运行.exe时,这就是网格的样子
我知道该应用程序的工作方式类似于32位应用程序,因为我尝试访问 .MainModule.FileName 以查找exe的路径,32位进程在尝试访问时会抛出Win32异常64位进程。我处理那个例外,但我找不到路径,我需要它。
我需要一种方法来生成bin中的.exe作为64位应用程序,或者至少理解为什么它不像64位应用程序那样工作,如果配置为64位。 / EM>
答案 0 :(得分:0)
不同的项目配置具有不同的输出文件夹。您的x86配置仍然使用您正在查找的原始bin文件夹,但新的x64配置将把其输出转储到另一个文件夹中。
Visual Studio跟踪当前配置的输出文件夹,因此它将启动正确的EXE。但是当你自己启动它时,你正在查找错误的文件夹。您正在运行从未更改过的32位EXE。
要查看输出路径的位置,请转到项目的“属性”(在“解决方案管理器”中),然后单击“构建”选项卡。您应该在标有“输出路径”的文本框中看到它位于底部附近。
默认情况下,x86使用bin\Debug\
,而x64使用bin\x64\Debug\
。 (这些是相对于解决方案目录的相对路径。)