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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual Studio不会调试到引用的DLL(来自相同的解决方案)相关的知识,希望对你有一定的参考价值。

我有一个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");

而且我没有例外。那很可疑......

答案

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

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

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

另一答案

啊哈!

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

另一答案

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

另一答案

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

另一答案

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

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

以上是关于Visual Studio不会调试到引用的DLL(来自相同的解决方案)的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio不会更新新DLL的路径

在 Visual Studio 中复制 DLL 的依赖项

在 Visual Studio 2008 中使用附加到进程调试 DLL 项目

如何使用 Direct8 dll 编译/调试 Visual Studio 2012 Win32 项目

Visual Studio中根据系统区分引用64位32位DLL动态库文件的配置方法

visual studio 2008如何引用dll