如果我从其他文件夹运行它,如何调试.exe文件?

时间:2015-04-10 17:39:01

标签: c# visual-studio

使用Visual Studio Express 2013

我已经尝试了以下两行代码来尝试获取正在运行的.exe的位置,但我似乎无法做到这一点。基本上,我写了一个.exe但我需要从bin \ debug文件夹以外的其他位置调试它。还有另一种方法我应该这样做吗?附加到正在运行的进程似乎不起作用,因为代码一旦启动就会失败。

//找到当前放置.bat或.exe的目录

string path_string = System.Reflection.Assembly.GetExecutingAssembly().Location;
string path = AppDomain.CurrentDomain.BaseDirectory;

4 个答案:

答案 0 :(得分:3)

您可以指定在Visual Studio中进行调试时要启动的程序的路径。

转到项目的属性,单击“调试”选项卡,然后选择“启动外部程序"”。然后输入exe所在的路径。

Visual Studio Properties Window

答案 1 :(得分:1)

添加

System.Diagnostics.Debugger.Launch()

到程序的开头。然后当你双击exe(它必须是一个调试版本)时,你会提示将代码附加到exe进行调试。

提示应如下所示: enter image description here

答案 2 :(得分:1)

@Erik Visual Studio Express不幸没有这个功能,所以我找到了一个解决方法。谢谢你的提示,绝对打开了灯泡!希望这对其他人也有帮助

vs2013_express

基本上,您需要编辑文件的.csproj。你在专业版的gui做同样的事情。在属性组标记结束之前添加以下行,它应该有帮助。

possible solution

答案 3 :(得分:0)

使用Visual Studio 2012:

static void Main(string[] args)
{
    System.Reflection.Assembly newAssembly = System.Reflection.Assembly.LoadFrom("ProcessTarget.exe");
    newAssembly.EntryPoint.Invoke(null, new object[1] { new string[0] });
}

这两个项目都在我的解决方案中。以上是启动项目。我在另一个(ProcessTarget)中放置一个断点并按下F5。执行在断点处停止。

执行此操作时,第二个.exe(ProcessTarget)的行为类似于DLL。例如,它使用启动项目中的App.config。