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 2008 中使用附加到进程调试 DLL 项目
如何使用 Direct8 dll 编译/调试 Visual Studio 2012 Win32 项目