如何从" StartUp"以编程方式启动第二个项目项目采用相同的C#解决方案?

时间:2014-05-07 19:11:42

标签: c# debugging visual-studio-2012 process visual-studio-debugging

我有两个项目的C#VS 2012解决方案:ProjectA和ProjectB。为简单起见,这两个项目都是控制台应用程序。

需要先启动ProjectA,然后将其设置为"启动项目"为解决方案。当我在调试器下运行带有F5的ProjectA时,需要执行一些操作,之后它应该在同一调试器下启动ProjectB 。因此,如果我在ProjectB的第一行设置断点,调试器应该会中断。

我有什么方法可以做到这一点?目前我使用Process.Start(" path_to_projectB.exe")但需要替换为" Process.StartUnderSameDebugger(" path_to_projectB.exe")" 。我想使用为ProjectB启动ProjectA的VS调试器的相同实例。

请注意,我不想使用"启动多个项目" Visual Studio中的选项。如果我这样做,两个控制台应用程序同时启动(这是不需要的)和同一调试器(这是想要的)。第一个流程必须先执行一些操作才能启动第二个流程,这就是我无法使用此方法的原因。

此外,当我稍后停止调试时,应关闭两个进程(来自ProjectA和ProjectB的控制台应用程序)。

3 个答案:

答案 0 :(得分:0)

您可以在第一个项目启动后手动右键单击调试第二个项目 - 两个项目都将在调试器停止时结束。

答案 1 :(得分:0)

这些选项

  1. 创建一个单元测试,模拟给定的测试场景。
  2. 创建项目C,该项目引用项目或将目标CS文件包含为linked filesAdd Existing Item - > Add(选择下拉列表add as link)并复制这个过程需要进行测试。

答案 2 :(得分:0)

Visual Studio团队发布了一个Visual Studio扩展,允许自动将子进程附加到当前调试器:Introducing the Child Process Debugging Power Tool

因此,您可以使用ProjectBProjectA开始Process.Start,它会自动将调试程序附加到第二个进程。

Visual Studio 2013及更高版本的Gallery可以使用它。

您还可以查看我的答案here,了解如何将当前调试程序附加到您可能启动的任何进程。请注意,它不会像Visual Studio扩展那样立即生效,因为在进程启动后,调试器将被附加