好的,我有:

Visual Studio 2010 RC, W7 x64,启动了一个新的项目类型的Silverlight应用程序。在ASP中托管Silverlight应用程序。NET Web应用程序项目。Silverlight 3.0版。 添加了一个LinqToSQL类,一个WCF服务,一个Winform测试应用程序(解决方案中的项目)和一些类(也作为解决方案中的项目)。

昨天,我突然得到了“断点当前不会被击中”。本文档未加载任何符号。'消息出现在IDE中,但它只影响Web Appliaction,我可以调试Silverlight和Winform应用程序。

我尝试/做了什么来摆脱这条信息:

Reset Visual Studio Settings removed all files in every \Temporary ASP.NET Files Folder (there is one for each 32bit/64bit and for Framework 2.0 and 4.0) tried to debug using Visual Studio Integrated Web server - normally I use IIS, in the project output of the solution I deleted every obj and bin folders in every project folder created a new solution and added all the projects to this new solution deleted the solution suo file created a new ASP.NET Web Application to test if it is a VS-installation issue => I can debug this new project/solution rebooted the machine several times repaired the vs.net installation did an IISReset removed the Web App from IIS used the Create Virtual Directory Button under Project Properties of the Web App to create a new Web App in IIS changed the Framework Version of every project from 3.5 to 4.0 Opened the Solution on my second machine => same behavior crawled Microsoft Connect for bugs / similar issues SPENT 7 HOURS.

这是我人生中第二次这样了。上次我通过删除临时ASP解决了这个问题。NET文件文件夹,但这次我需要你的帮助。


当前回答

这个错误偶尔会出现,我总是可以将其追溯到相关程序集的项目设置。你不必“等待”,直到你的代码不能遵守断点或直到你设置了断点,才能知道哪些程序集加载了符号。

当您在调试模式下运行项目时,它将在输出窗口中列出哪些程序集具有如下加载的符号(您可能需要在新选项卡中打开图像)

所以在这种情况下,BASD.Core.Data.dll没有加载符号。因此,您可以将此程序集的项目设置与设法加载符号的另一个程序集的项目设置进行比较,以便弄清楚为什么有些程序集可以加载符号,有些程序集不能加载符号。

然而,“对我来说”,“每次”发生这种情况,都是因为没有创建调试信息。所以我在一个(c#)项目中打开项目属性>构建>高级。

所以对于上面的Basd.Core.Data.dll,即没有符号,高级构建设置是:

而对于Basd.Core.Configuration.dll,即我可以设置并命中断点的程序集,设置如下:

所以我在后一个项目中输出调试信息,而不是在第一个项目中,因此我能够在Basd.Core.Configuration.dll中命中断点

还要注意,对于给定的.dll,仅仅在项目的bin文件夹中有一个.pdb文件是不够的,因为它很可能已经过期,因此Visual Studio不能将其作为您试图过路的.dll的有效符号文件。

还要注意,更改构建配置可以更改构建信息设置以及从哪里提取符号。

(我意识到在这种情况下我处于释放模式,但方法仍然适用)

其他回答

如果你正在调试一个web项目,确保debug="true"属性已经在你的web中设置。配置文件:

<system.web>
    <compilation debug="true"   .../>

也有同样的问题

由于某种原因,其中一个dll在GAC中注册,因此它的版本总是与代码不同。

一旦我把它从GAC中移除,问题就解决了

我也遇到了同样的问题,在谷歌了一下之后,我找到了两个典型的解决方案:

确保在. web项目中激活了Silverlight调试器。打开项目属性,在“Web”选项卡下选择Silverlight调试器。 重新启动Visual Studio,删除所有bin和obj文件夹。

但这些对我都没用。然后有人在帖子后面提到尝试使用IE作为浏览器。这使得调试和断点再次工作!

编辑:

后来我遇到IE9无法工作的问题,因为它附加了错误的进程。我发现了一个巧妙的技巧,而不是每次都手动连接到正确的IE进程:

右键单击.Web项目(.html或.aspx)中生成的一个页面 点击“浏览…” 设置IE为默认浏览器(只会影响Visual Studio的浏览器选择)

现在,Visual Studio将在运行. web项目时启动IE并附加到正确的进程。这样就行了。

我在Windows 7上也遇到了同样的问题,尝试了所有方法:清理dll,调查模块列表,关闭“只是我的代码”,等等。

在我以“管理员”身份运行Visual Studio后,问题得到了解决。诚实。为什么微软不能警告我它不是“以管理员身份”运行的呢?这会节省我几个小时的工作时间。

这是我如何修复我的问题,克隆到不同的存储库,Visual Studio 2015:

在Visual Studio中:

点击工具- >选项 在左窗格中,单击调试->符号 点击“空符号缓存”