调试工作项目作为VS中另一个项目的进程运行

时间:2013-08-28 13:56:52

标签: c# visual-studio-2010 visual-studio debugging

我有两个项目。其中一个是工作者应用程序,它做了一些事情。另一个是工作者的GUI(GUI运行作为工作者实例的异步进程)。因此,worker项目输出是GUI使用的.exe文件。

如何调试工作人员?这样做有可能吗?令人讨厌的是我可以为worker创建一个命令行界面并生成某种引用参数,以便它单独运行它,但问题是当我想为多个实例执行此操作时(我有一个生成的程序)一些数据异步所以我必须在我的代码中找到一个错误,它在一个进程中工作正常,但在多个错误中运行。)

1 个答案:

答案 0 :(得分:1)

你没有提供关于gui和worker之间交互的太多信息,但如果附加到进程太难(通常是工作者只是短暂运行),更可用的方案是添加配置选项到gui为worker命令行添加一个额外的参数,worker指向DebugBreak。例如,工人的主要是

var args = ParseArguments(); //check if string 'WaitForDeugger' is on command line
if( args.RequestsDebug )
  System.Diagnostics.Debugger.Break();

....

gui像这样调用工人:

var args = GetArgumentsForWorker();
if( someSpecialDebugOptionEnabled )
  args += " WaitForDeugger";
Process.Start( "worker.exe", args );