Visual Studio:调试引用的DLL,我在另一个SLN中有源代码

Mar*_*tin 64 c# visual-studio-2010 visual-studio visual-studio-debugging

我正在尝试调试一个项目,该项目引用了我添加的DLL,DLL存储在外部目录中,我只是添加了一个引用.现在我当然可以调试我的项目,但在我的另一个dll上调用方法的行我不能介入它,即F12.

我能做到这一点的方法之一是我的项目(DLL)作为现有项目添加到我的解决方案,并更换参考DLL使用附加的项目,而不是磁盘上的文件.

但真是一团糟,我相信有更干净的方式?

我似乎记得,如果我复制一些PDB文件或东西,但我不记得了.我是否需要打开2个visual studio副本,1个用于我的主项目,1个用于我引用的DLL?

Kna*_*ģis 70

在您自己的计算机上以调试模式重建第二个解决方案(以便该PDB中的文件路径特定于您的计算机).

复制将.dll和.pdb文件到您的引用文件夹.Visual Studio将自动获取.PDB文件并使用文件路径显示源.

您可以使用Symbol Server和Source Server在其他地方构建引用的程序集时实现此目的:http://msdn.microsoft.com/en-us/library/vstudio/ms241613.aspx

  • 如果您无法通过直接方法调用直接进入代码,如何在DLL的代码中添加断点? (13认同)
  • @Liam或者你可以在cs文件中添加一个断点,如果你在同一个visual studio实例中打开它. (6认同)
  • @ JennyO'Reilly你可以编译一个`System.Diagnostics.Debugger.Break()`(https://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break(v=vs.110) .aspx)方法调用您的解决方案.显然要小心,这不会在生产代码中结束(也许使用`#if DEBUG`预编译语句) (2认同)

Dil*_*gid 12

我通过以下方式得到了解决方案

尝试禁用Just My Code(JMC).

工具 - >选项 - >调试器取消选中"仅启用我的代码"