Debugging 调试多个解决方案VS 2012

Debugging 调试多个解决方案VS 2012,debugging,visual-studio-2012,Debugging,Visual Studio 2012,我一直在尝试用解决方案B中的MVC项目调试解决方案a中的类库。 我运行解决方案B,在解决方案a中设置断点,但调试器从未进入解决方案a 我已经试过了,但没有成功 如何在VS2012中调试多个解决方案 谢谢 有一些方法可以做到这一点。但最简单的方法是: 启动解决方案B 转到解决方案A 转到调试->附加到进程 选择正在运行的可执行文件(当然是从解决方案B。您可能需要选中“显示所有用户的进程”) 您需要将解决方案A链接到解决方案B的可调试版本,以使其正常工作。通常它位于项目的bin\Debug子目录中。

我一直在尝试用解决方案B中的MVC项目调试解决方案a中的类库。 我运行解决方案B,在解决方案a中设置断点,但调试器从未进入解决方案a

我已经试过了,但没有成功

如何在VS2012中调试多个解决方案


谢谢

有一些方法可以做到这一点。但最简单的方法是:

  • 启动解决方案B
  • 转到解决方案A
  • 转到调试->附加到进程
  • 选择正在运行的可执行文件(当然是从解决方案B。您可能需要选中“显示所有用户的进程”)
  • 您需要将解决方案A链接到解决方案B的可调试版本,以使其正常工作。通常它位于项目的
    bin\Debug
    子目录中。在这种情况下,应该在到达断点后立即命中断点

    另一种方法是:

  • 打开解决方案A的属性
  • 转到调试
  • 在“启动操作”下选择“启动外部程序:”
  • 浏览到解决方案B的可执行文件
  • 运行解决方案A


    另一种方法是在类库中插入语句
    Debugger.Break()(需要使用System.Diagnostics;
    )执行
    。不过,请注意不要发布调试版本!一旦到达,系统就会弹出一个对话框,询问您是否要调试进程。此过程还取决于所有组件的正确安装…

    制作一个包含解决方案a中的类库以及解决方案B中的MVC项目的解决方案C。这不需要对类库项目或MVC项目进行任何更改或复制。事实上,您可以保留这些项目,只需将现有项目添加到新的解决方案C。

    我已经这样做了,但是断点表示“断点将不会被激活。此文档未加载任何符号”。您需要将可执行文件链接到类库的可调试版本。因此,这实际上取决于您链接解决方案的方式。我已将iis进程附加到类库项目,但当我这样做时,我必须分离MVC项目,这非常烦人。对于第二个解决方案,我不知道哪个是MVC项目的可执行文件。谢谢当您附加到流程时,您已经有了关于它的各种信息。使用该信息的一种方法是查看项目的名称和目录树,以找到具有该名称的进程文件。当然,在这种情况下,调试器也会将第二个进程与第一个进程分离。这就像Richard Walter所说的:创建一个新的解决方案并将两个项目添加到其中,这样您就可以在同一环境中打开它们并同时调试它们。