我有两个项目的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的控制台应用程序)。
答案 0 :(得分:0)
您可以在第一个项目启动后手动右键单击调试第二个项目 - 两个项目都将在调试器停止时结束。
答案 1 :(得分:0)
这些选项
linked files
(Add Existing Item
- > Add
(选择下拉列表add as link
)并复制这个过程需要进行测试。答案 2 :(得分:0)
Visual Studio团队发布了一个Visual Studio扩展,允许自动将子进程附加到当前调试器:Introducing the Child Process Debugging Power Tool。
因此,您可以使用ProjectB
从ProjectA
开始Process.Start
,它会自动将调试程序附加到第二个进程。
Visual Studio 2013及更高版本的Gallery可以使用它。
您还可以查看我的答案here,了解如何将当前调试程序附加到您可能启动的任何进程。请注意,它不会像Visual Studio扩展那样立即生效,因为在进程启动后,调试器将被附加。