我正在尝试调试一个项目,该项目引用了我添加的DLL,DLL存储在外部目录中,我只是添加了一个引用。现在我当然可以调试我的项目,但在我的另一个dll上调用方法的行我不能介入它,即F12。
我能够做到这一点的一种方法是将我的项目(dll)作为现有项目添加到我的解决方案中,并替换引用的dll以使用附加项目而不是磁盘上的文件。
但是多么糟糕,我相信有更清洁的方式?
我似乎记得如果我复制一些PDB文件或其他东西,但我不记得了。我是否需要打开2个visual studio副本,1个用于我的主项目,1个用于我引用的DLL?
答案 0 :(得分:69)
在您自己的计算机上以调试模式重建第二个解决方案(以便该PDB中的文件路径特定于您的计算机)。
将.DLL和.PDB文件的 复制到您的参考文件夹。 Visual Studio将自动获取.PDB文件并使用文件路径显示源。
您可以使用Symbol Server和Source Server在其他地方构建引用的程序集时实现此目的:http://msdn.microsoft.com/en-us/library/vstudio/ms241613.aspx
答案 1 :(得分:11)
我通过以下
获得了解决方案尝试禁用Just My Code(JMC)。
工具 - >选项 - >调试器 取消选中“仅启用我的代码”
答案 2 :(得分:1)
我遇到了同样的问题,我通过清理和重建解决方案解决了这个问题。它将纠正.pdb文件中的引用以查找并命中第二个项目中的断点。
答案 3 :(得分:0)
执行Debug构建时,所有dll和pdb文件都在主机项目中建立。因此,不需要手动复制文件。
右键单击解决方案,选择添加/现有项目... 导航到Class lib文件夹并选择proj文件(例如myproj.csproj)。 文件不会被复制,只是被引用,您可以在IDE中打开类的源代码并以正常方式设置断点,它只是起作用。