在Visual Studio中,为什么我不能调试引用的类库?

时间:2015-11-20 20:39:07

标签: visual-studio visual-studio-debugging debug-symbols

我知道这听起来很容易,并且很多人都提出了相同或类似的问题。我已经花费了很多小时,而且没有一个解决方案适合我。

我有一个有两个项目的解决方案:

项目1是依赖于项目2的Windows窗体应用程序 项目2是一个类库。

  • 我在Project 1中添加了对Project 2的引用。我选择了Add Reference - >项目,然后选中项目2的框。
  • 我将Project 1设置为启动项目。
  • 我将配置文件设置为Debug。
  • 我已设置两个项目以生成完整的调试信息,并已验证两个项目都在生成.pdb文件。

调试时,我在Project 1中的断点工作正常。在项目2中,如果我将鼠标悬停在断点上,则会显示臭名昭着的“断点当前不会被点击。此文档未加载任何符号。”

如果在调试时我从Debug菜单中选择Modules,那么类库甚至没有被列为被加载,所以我甚至没有选择手动加载它们。

我遗漏了有关语言,Visual Studio版本,目标.NET框架的详细信息,因为我已经在C#和VB中创建了测试项目,针对不同版本的.NET框架,并使用了三个不同版本的Visual Studio(2008年,2013年) ,和2015)。

我找到的唯一可以调试引用库的方案是在创建MVC Web应用程序时。当我尝试使用Windows窗体应用程序或控制台应用程序时,它永远不会工作。

我在这里缺少什么?

谢谢

更新 我刚刚做了另一个测试,我创建了一个类库第一个,然后在解决方案中添加了一个控制台应用程序项目(在之前的测试中我反过来做了)。然后,我在控制台应用程序项目中添加了对类库项目的引用。然后我就能调试这两个项目。控制台应用程序的.exe和类库的.dll都显示在Debug - >下。 Windows - >模块,而通常当我第二次添加类库时,它不会显示在这里。很奇怪。然而,这仍然无法解决我的问题,因为我需要使用现有的解决方案。

3 个答案:

答案 0 :(得分:1)

出于某种原因,有时当您第一次开始调试时,引用的类库不会显示在已加载模块的列表中。类库中的断点也会显示白色,并说它们不会被点击,因为没有加载符号。

但事实证明,它仍然会遇到断点,然后类库DLL确实显示在模块列表中。它似乎是在它实际使用它之前没有加载它。有时情况并非如此。我不知道为什么有时它会在调试开始时加载类库DLL,有时它不会。

答案 1 :(得分:0)

我在ASP.NET应用程序中遇到此问题。我要解决的问题是:

  • 清理了应用程序
  • 清理了类库
  • 重新启动Visual Studio
  • 管理该项目

我怀疑在构建时会发生一些事情,生成并复制符号到应用程序中。

答案 2 :(得分:0)

我遇到了类似的问题。我必须转到工具 > 选项 > 调试,然后取消选中“仅启用我的代码”并取消选中“跳过属性和运算符(仅限托管)”