我有一个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");
我没有得到例外。这很可疑......
答案 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")]