Visual Studio不会调试到引用的DLL(来自相同的解决方案)

时间:2010-03-29 15:45:32

标签: visual-studio visual-studio-2008 debugging web-applications

我有一个Visual Studio 2008解决方案,有2个项目。 DLL,A和Web应用程序,B。

B有一个项目引用A,而A.dll和A.pdb被复制到B的bin /目录。

将所有内容设置为在调试模式下编译。

我可以运行cassini webserver并调试Web应用程序B,但是当我在A.dll中调用一个方法时,按F11进入它不会进入它,它会跳过它。我想介入它。

为什么我可能无法进入A的源代码的任何想法?

编辑:附加信息

我没有“只检查我的代码”。

我可以在DLL中设置断点,它显示为红色圆圈(不是空心圆圈),但它永远不会被击中。

嗯...我刚刚修改了DLL中的代码,该代码被调用以

开头
throw new Exception("Hello");

我没有得到例外。这很可疑......

5 个答案:

答案 0 :(得分:18)

最可能的问题是Visual Studio不认为DLL是“您的代码”的一部分。解决此问题的方法是禁用“Just My Code”调试功能。

  • 工具 - >选项 - >调试
  • 取消选中“启用我的代码”

执行此操作后,您应该能够顺利进入代码。

答案 1 :(得分:4)

啊哈!

B我的方法是调用返回IEnumerator<SomeObject>。它是一个带有yield关键字的迭代器块,因此没有被执行(因为我还没有编写消费者)。

叹息

答案 2 :(得分:3)

对于那些说禁用&#34; Just My Code&#34;的人,他明确指出这两个项目属于同一解决方案,因此不适用。唯一合乎逻辑的结论是用户错误/误解。

答案 3 :(得分:2)

您可能在调试选项中设置了“仅我的代码”选项。关闭它,你可以从dll步入代码。

答案 4 :(得分:0)

检查DLL的AssemblyInfo.cs中是否有如下所示的行。您可能必须暂时注释掉该行,以便在调试时进入DLL。

[assembly: AssemblyKeyFile("..\\..\\something.snk")]