好的,我所拥有的是:Visual Studio 2010 RC,W7 x64,启动了Silverlight应用程序的新项目类型。将Silverlight应用程序托管在ASP.NET Web应用程序项目中。 Silverlight 3.0版。
添加了LinqToSQL类,WCF服务,Winform Tester应用程序(解决方案中的项目)和一些类(也作为解决方案中的项目)。

昨天,突然我得到了'断点目前不会被击中。没有为该文档加载任何符号。消息出现在IDE中,但只影响Web应用程序,我可以调试Silverlight和Winform应用程序。 br />
重置Visual Studio设置
删除每个\ Temporary ASP.NET Files文件夹中的所有文件(每个32bit / 64bit以及Framework 2.0和4.0都有一个)使用Visual Studio集成Web服务器-通常我使用IIS,在解决方案的项目输出中,我删除了每个项目文件夹中的每个obj和bin文件夹
创建了一个新解决方案,并将所有项目添加到了该新解决方案中
删除解决方案suo文件
创建一个新的ASP.NET Web应用程序以测试它是否是VS安装问题=>我可以调试此新项目/解决方案
多次重新启动计算机
修复vs.net安装
进行了IISReset
从IIS中删除了Web App
使用Web App的“项目属性”下的“创建虚拟目录”按钮进行创建IIS中的一个新Web应用程序
将每个项目的框架版本从3.5更改为4.0
在第二台计算机上打开解决方案=>相同的行为
Microsoft Connect发现错误/类似问题
花费了7小时。

所以,这是我生命中的第二次。上一次我通过删除Temporary ASP.NET Files Folder解决了此问题,但这一次我需要您的帮助。

评论

这是重复的内容,请查看[本页] [1],以获取对问题[1]的答案:stackoverflow.com/questions/2155930/…

就我而言,在项目属性的“构建”选项卡中关闭“优化代码”可以解决此问题。

#1 楼

右键单击解决方案->属性

在“公共属性”下查找->启动项目

选择多个启动项目

在您需要调试的项目。

评论


这行得通,但是我不得不做几次(VS 2010,内置的网络服务器,网站)

– MGOwen
2012年1月24日9:18

我有多个项目,并按您所说的启动它们。.其中一些是类库项目。.出现以下错误弹出窗口:“无法直接启动具有类库输出类型的项目”

–穆罕默德·阿泽姆(Muhammad Azeem)
2012年10月19日上午10:31

我遇到了穆罕默德评论的完全相同的问题。 VS不会为其加载符号的项目是一个库项目。有趣的是,链接到相同库项目的另一种解决方案可以毫无问题地调试相同的库!

–维维安河
2014年3月11日在21:35

我认为这不是问题的答案。它只是将多个项目设置为同时启动,而不是通常的一个项目。如果项目是Class Lib(dll),则它将显示一条错误消息,指出无法启动。一个项目是否是一个开始项目与调试无关。

– Greg Gum
15年2月3日在17:39

就我而言,我已经重新配置了运行项目的IIS站点,使其指向另一个文件夹。不知何故,这清除了上面指示的解决方案设置...?可能是源代码控制错误,但我找不到.sln的更改。无论如何,按照说明进行重置可以解决问题-希望有识之士可以帮助他人。

–白蛋白
15年8月26日在22:33

#2 楼

我遇到了同样的问题,在进行谷歌搜索之后,我找到了两种典型的解决方案:


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

但是这些都不适合我。然后有人提到一个很深的线程,尝试使用IE作为浏览器。这使调试和断点再次起作用!

编辑:我没有每次都手动附加到正确的IE进程,而是找到了一个巧妙的技巧:
单击“使用...浏览”。
将IE设置为默认浏览器(只会影响Visual Studio对浏览器的选择)。现在,Visual Studio在运行时将启动IE。 Web项目并附加到正确的过程。那应该做。

评论


谢谢,这对我有用!唯一的问题是:我无法在任何配置文件中设置要运行的浏览器(可以吗?),所以现在我将IE用作默认浏览器。呸。

– DanTheMan
2011-4-5 19:47



为避免将IE作为默认浏览器,我更改了.Web项目中的启动设置,以将IE作为命令行参数运行IE。

– Angularsen
2011年4月19日下午14:39

你太棒了。最近几天,我一直在努力解决这个问题。我什至重新安装了Visual Studio。我的默认浏览器是firefox,我尝试了chrome。尝试IE浏览器并没有让我大吃一惊,这是浪费时间。谢谢(你的)信息。

–GaneshT
2011年10月4日,下午5:43

修正我在编辑后的答案中所述的问题时,不应遵循我之前对启动设置的评论。只需使用默认的“特定页面选项”,否则我相信它可能会附加到错误的过程中。

– Angularsen
2011年11月9日19:44

我已经在.Web项目设置的“ Web”选项卡上选中了“ Silverlight”复选框。现在工作了。谢谢!

– Eugene Maksimov
2012年1月20日下午6:56

#3 楼

每当出现此特定错误时,事实证明Visual Studio从中加载程序集的文件夹与Web应用程序正在运行的文件夹不同。

即该应用程序服务器正在从

C:\dev\MyApplication\bin 

运行应用程序,但是Visual Studio是从

C:\dev\MyOtherApplication\bin (or something along those lines, anyway).


调试注–对于各种原因,我将IIS作为应用程序主机而不是大多数人使用的独立独立小控件进行调试。这可能会影响我回答的有效性!

更新:

对于IIS,应用程序服务器目录(即上述C:\dev\MyApplication)是为Web应用程序配置的物理目录-这可以通过更改应用程序的基本设置来控制。

评论


也许可以,但是Hans K的答案对我有用。我猜根据情况有多种答案。

–鲍勃·温登伯格
2011年5月9日22:21

好的,但是我怎么知道这是否正在发生?我如何解决它?

– MGOwen
2012年1月24日上午8:52

@MGOwen-在IIS配置中,检查包含服务的虚拟文件夹的物理位置,并确保其与VStudio的输出目录匹配。

–贝文
2012年1月25日18:30

是的,我也正在使用IIS,但是VS崩溃后,我的解决方案文件已损坏,因此我不得不再次将其从Subversion中撤出。当然,我忘记了这样做,它又恢复为使用VS webdev服务器。 h!谢谢!

–亚历山大·斯蒂曼(Feedor Alexander Steeman)
2012年11月29日13:54

当VS感到困惑时,请确保返回到Debug配置文件。那让我。

–克里斯托弗·史蒂文森(Christopher Stevenson)
13年5月16日在22:24

#4 楼

对我来说,问题出在“调试”配置中,“属性”->“构建”->“优化代码”复选框已打开。将其关闭,重建和调试正常。

评论


为我工作。真的不知道为什么,通常启用“优化代码”将不会让您中断{和}。

–警惕
2011-10-25 19:23

也为我工作!谢谢!

–bisand
17年2月3日,9:35

项目准备发布。总有东西不存在。

–伊恩·沃伯顿(Ian Warburton)
18年1月8日在21:22

为我做到了! +1

–神庙
18-2-27在2:02

#5 楼

您面临的原因是PDB(“ PDB代表程序数据库,一种专有文件格式(由Microsoft开发),用于存储有关程序的调试信息)不是最新的,这可能是由于某些原因所致。 :

1-如Bevan所说,您可能正在调试另一个应用程序!

2-您正在调试同一应用程序的另一个版本,例如,您附加了以前构建的应用程序使用当前版本的代码进行调试,而无需(重新)构建它。

清理或重建解决方案为我解决了此类问题。

确保问题出在不是您的,请尝试使用VS 2008调试相同的应用程序(恐怕可能是VS 2010中的错误-仍是beta!)。

评论


感谢您的注意。.当然,我清洗/重建了解决方案,但这没有帮助。要点1:如果我在其他系统上尝试过该应用程序,该如何调试?顺便说一句,对于Point 2也是一样。它完全是RC,非常稳定。

–克里斯蒂安·卡苏特(Christian Casutt)
2010-2-20在8:03



我不太理解您的短语“我在另一个系统上尝试过”! Release Candidate并不意味着它没有错误,如果尝试,您将不会失去任何东西。如果您使用的是IE8,则有人说这可能是问题的根源,请检查以下内容:weblogs.asp.net/abdullaabdelhaq/archive/2009/06/01/…

–Sameh Deabes
2010-2-20在11:29



我也发现了这一点:stackoverflow.com/questions/389290/…人们建议在那里过于急躁地解决方案。看一看在线断点注释。

–Sameh Deabes
2010-2-20在12:04

好的我明白了。我的短语“我在另一个系统上尝试过” =>将解决方案复制到USB记忆棒上,删除所有bin / obj文件夹,在VS.NET中打开解决方案并尝试对其进行调试。结果:相同的行为=>断点不会命中..感谢其他链接,我现在将阅读它。

–克里斯蒂安·卡苏特(Christian Casutt)
2010-2-20在12:24

Clean + Rebuild并不总是更新.pdb文件。我所做的-转到我的Web应用程序的/ Bin文件夹并手动删除了所有.pdb文件,然后重新构建。像魅力一样工作。

–德米特里
2011-10-27 9:49

#6 楼

我遇到了同样的问题,正在调试我的项目,因此必须右键单击该项目并选择“新的调试实例”。我只需要执行一次,然后就可以正常使用了。

评论


很奇怪。我有同样的问题,用谷歌搜索了2小时。由于某些原因,我在调试时无法加载模块(调试-> Windows->模块)。我只是尝试了此选项,然后开始进行调试。我正在使用Vs2019

–丹麦人约瑟夫
20 Jan 31'22:07



#7 楼

对于我来说,此错误时不时地出现,我可以随时将其追溯到相关程序集的项目设置。您不必“等待”直到您的代码未能遵守断点或您设置断点,即可知道哪些程序集已加载符号。

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



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

但是,“对我来说”每次“都会”发生是因为未创建调试信息。因此,我在(C#)项目中打开“项目属性”>“构建”>“高级”。

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



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



>因此,我在第一个项目中而不是在第一个项目中输出调试信息,因此,我能够在Basd.Core.Configuration.dll中达到断点的能力对于给定的.dll,在项目的bin文件夹中有一个.pdb文件,因为它很可能已过期,因此Visual Studio不会将其作为您要逐步解决的.dll的有效符号文件。

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

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

评论


您也可以通过“模块”窗口检查加载了哪些符号。如果转到调试> Windows>模块,它将列出所有模块及其符号状态。对于未加载的,可以右键单击它们,然后单击“加载符号”。但是,这更多是短期修复,并且仅当它们出现在列表中时才起作用。

– EF0
15年12月15日在19:57

#8 楼

转到项目属性->构建->高级...

在“输出”部分中,在“调试信息”下拉列表中选择“完整”

评论


我试图将调试器附加到发行档案中,这对我有用!

– imlokesh
15年4月29日在18:44

谢谢! “仅pdb”(而不是完整的)就足够了。

– Greg Little
15年8月31日在15:54

上帝保佑你我的孩子。

–克里斯托弗·D·爱默生
18-10-19在12:49

#9 楼

确保您以DEBUG模式而不是RELEASE模式运行程序。

评论


好答案。谢谢

–克里山·苏杜迪
18年8月7日在22:55

#10 楼

调试->附加到进程->
选择调试以下代码类型:选项->
选择托管v3.5,v3.0,v2.0或托管v4.5,v4.0


评论


这是我遇到的问题。我在v4.5中有一些项目,而在v2.0中有其他项目(是的,我知道,我知道...)。显然,此设置不是基于项目的,因此当我在v4.5项目中进行设置时,进入v2.0项目时必须将其重新设置。

– L_7337
16年6月6日在12:44

#11 楼

我刚刚根据部署Silverlight应用程序解决了此问题。 (此答案是其他一些答案的重复,但我将尝试更彻底地解释它。)

问题很可能是您的Silverlight应用程序未在build /上正确部署到Web应用程序启动。这是一个引用问题-很容易理解,但是在您第一次遇到它时并不明显。进行调试。对于类库,当您右键单击并选择“添加引用...”时,会发生这种情况。对于Silverlight,您应该通过“项目属性”添加引用。


右键单击您的项目,然后选择“属性”
选择左侧的“ Silverlight应用程序”选项卡
按下“添加...”按钮,然后从对话框中选择您的Silverlight项目。

这将从托管Web应用程序添加对Silverlight应用程序的引用,并确保将xap文件复制到构建或部署的Web应用程序。这意味着当前的Silverlight应用程序及其调试文件位于要调试的应用程序内部,您将能够逐步完成代码。

#12 楼

如果要调试Web项目,请确保已在web.config文件中设置了debug =“ true”属性:

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


#13 楼

我在Windows 7上遇到了相同的问题,并尝试了所有方法:清理了DLL,调查了模块的列表,关闭了“仅我的代码”等等。 Studio“以管理员身份”。老实说为什么Microsoft不能仅仅警告我它没有以“管理员身份”运行?这样可以节省一些时间。

#14 楼

对我来说,问题在于我在项目设置的“构建”选项卡中启用了“优化代码”。

#15 楼

遇到相同的问题

由于某种原因,其中一个DLL已在GAC中注册,因此它的版本始终与代码不同。

一旦我将其从中删除GAC,问题已解决

评论


您的意思是如何解决这种情况?还是我如何将其删除?

– Stikut
2014年5月13日晚上8:40

您如何删除它。我遇到了同样的问题,无法解决。我已经尝试了一切,所以我希望这是我的解决方案。

– Gaui
2014年5月13日在9:46

我希望您可以使用以下一种方法:support.microsoft.com/kb/873195当然,除非您有其他错误

– Stikut
14年5月13日在12:42

#16 楼

对于使用Visual Studio 2008而不是Visual Studio 2010且正在读取此错误的读者。在这种情况下,上面的答案没有帮助,因此,我分享我的经验。
如果要通过附加到w3wp.exe进程而不是使用ASP在Visual Studio 2008中调试IIS Web应用程序,则可以。 NET开发服务器进行调试(从调试开始),这可能是您的问题:
Visual Studio可能仍会从IIS进程中的dll中引用dll中的符号文件(调试过程中使用的文件)。并且该符号文件已经通过.NET源代码重新编译而重新创建,但是IIS进程仍在引用旧的符号文件。
要修复:
只需在Visual Studio中停止调试,重新启动Web应用程序,然后重新附加到该过程。然后,断点应从黄色(当您看到此错误时)再次变为红色。
========================
可以尝试的更多事情(今天发现了新情况):
一次完成下面链接中的每个项目符号,但是请尝试以下每个步骤重复我的步骤。
http://carnotaurus.philipcarney。 com / post / 4130422114 / visual-studio-debugging-issue-of-the-same
1.)在Visual Studio中停止调试(按红色正方形图标)
2.)干净的解决方案
3.)生成解决方案
4.)[在此处插入子弹说明]
5.)工具>附加到进程(或从调试开始)
6.)启动程序您要附加的文件并运行它,以使您的代码被命中
6解释:
如果附加到nunit.exe,请打开NUnit并运行测试,以便命中断点。
如果附加到w3wp.exe(IIS站点),则在浏览器中打开您的站点,然后转到会遇到断点的页面
EDIT:
今天我注意到,如果您尝试在未设置为启动项目的项目上进行调试,它将显示此信息。当您附加到w3wp.exe进程时,它会认为其在设置为启动项目的项目上进行调试。若要解决,只需右键单击Web应用程序项目,然后选择“设置为启动项目”。然后尝试重新连接到您的进程。

评论


如果有帮助,请随时提出答案。 :-)我将告诉您投票的作用。

– MacGyver
15年4月13日在19:06

我支持您的回答,因为它很有帮助。我尝试了另一种方法,但您的方法却使我失望了。谢谢+1。

–扎克
15年4月13日在19:25

#17 楼

场景是这样的:一个特定的项目就是您的启动项目(例如,具有Main方法)。该项目引用了解决方案中的其他项目。其他项目中的断点不会受到影响。

快速解决方案:构建解决方案时,请在Build输出路径(通常为bin \ Debug)中查找启动项目。查看您正在引用的项目的DLL和PDB文件。确保其最后修改日期是您上次构建解决方案的日期。如果不是,则将它们从每个项目的Build输出路径复制到启动项目的Build输出路径。例如:

项目A具有Main。它引用了项目B。在项目B中未遇到您的断点。将DLL和PDB文件从项目B的Build输出路径复制到Project A的Build输出路径。然后运行您的解决方案。现在将达到断点。

现在您需要弄清楚为什么Project A不能在Project B的DLL和PDB文件上进行复制。这里的答案涵盖了大多数情况。未涉及的一种情况是确保您的项目和解决方案已正确绑定到TFS。我绑定了一些项目,而有些绑定不正确。那给我造成了问题。解决此问题后,问题就消失了,我不再需要复制DLL和PDB文件。

评论


您的第2段解决了我的问题。解决方案中的项目之一位于与启动dll的bin目录不同的bin目录中。

–BobRodes
2014年11月20日20:59

#18 楼

在我的情况下,针对同一问题的解决方案是以下步骤的组合:解决方案->属性选择多个启动项目,然后选择要对要调试的项目执行操作。
从“服务引用”中删除了该服务并清理了解决方案。
重建服务项目
将其重新添加到“服务引用”中
清理该解决方案并对其进行了重建。 br />

#19 楼

要解决Web.config中的此问题,我只需要添加debug="true"

  <system.web>
    <compilation targetFramework="4.0" debug="true">


帮我找到此解决方案的原因是调试时一直在查看“模块”窗口,并看到了对于已加载的ASP.NET DLL,我有:二进制文件未使用调试信息构建。

#20 楼

我有同样的问题,但在VS2013中使用了Web应用程序。对我来说,答案是更新解决方案的构建配置:-


右键单击解决方案,然后选择“属性”
选择“调试”配置
选择在trivet的“配置属性”下的“配置”
选中要调试的每个项目的“构建”框。

完成此操作后,所有断点都开始工作。

评论


这对我有用,但是我还必须在“配置”列中将所有项目从“发行版”更改为“调试”。

–JoshYates1980
16-2-25在20:06

#21 楼

好的,我们开始:

(在“ silverlight应用程序”中:请首先检查服务器项目“属性”中的“ web”中是否已检查silverlight-如果没有解决,请在下面尝试)

第一次执行:
首先运行此命令:devenv.exe / ResetSettings

1:
在顶部菜单中单击调试标记
2:
单击选项和设置
3:
在“调试”和“常规”下找到“启用.net Framework源代码步进”
4:
选中该框。
5:
现在将下载并重新配置所有符号:)

如果在上述操作之后再次发生,只需清除符号所在的文件夹:

1:
在顶部菜单中单击调试标记
2:
单击选项和设置
3:
在“调试”中在“符号”下找到“空符号缓存”按钮,然后单击它。

#22 楼

从浏览器中打开Web应用程序的URL,然后在VS.Net IDE中使用工具-> AttachtoProcess

,然后附加到aspnet_wp.exe。

调试器将开始工作。

#23 楼

我必须从注册表中手动卸载.dll的所有实例,并从本地驱动器中卸载.dll的所有实例。卸载/重新安装我的应用程序,现在即时达到断点!浪费了半天时间:(。

#24 楼

我尝试重命名.pdb文件夹中的obj\debug文件,并做了一个干净的解决方案并重建。

#25 楼

我遇到了同样的问题-浪费大量时间试图在Visual Studio中进行调试。

最终还是Nuget-我有3个版本的Newtonsoft.Json(横跨7个C#项目)。该解决方案可以编译,但不可调试。

我通过在Nuget的Package Manager控制台中运行以下命令解决了该问题:

PM> Update-Package Newtonsoft.Json

#26 楼

对于我的WPF应用程序,我删除了应用程序文件夹,再次从源代码管理中“获取最新”,然后重新构建。所有断点现在都很好用。

#27 楼

尝试将Silverlight应用程序项目设置为启动项目:右键单击项目->'设置为启动项目。然后按F5键,看看是否可以捕获断点...

每次对Silverlight应用程序进行更改时,尝试删除浏览器中的浏览/临时数据

#28 楼

另一个可能有用的轶事-

当我的一个项目正在使用Release输出文件夹中的文件引用时,我遇到了此问题。将生成结果放置在Goods文件夹中时,这些Release dll将覆盖Debug dll。

解决方案是确保在csproj文件中,我引用的HintPath是

<HintPath>..\..\Core\Goods$(Configuration)\MyFramework.dll</HintPath>

,而不是

<HintPath>..\..\Core\Goods\Release\MyFramework.dll</HintPath>

#29 楼

在客户端,对于每个应用程序解决方案,他们将大多数共享程序集复制到“参考”文件夹中,然后将它们作为“解决方案项”和解决方案中的“项目”添加到解决方案中时,我遇到了这个问题。

还不确定为什么,但是即使在程序集的“引用”设置中指定了正确的完整路径,其中有些还是可以调试的。 alomst让我发疯了:)

我解决了这一问题,方法是从“ References”文件夹中删除所有带有源代码项目的程序集,并很好地跟踪共享程序集的版本信息。 br />

#30 楼

我有一个类似的问题,只是我的问题很愚蠢-我有2个内置Web服务器的实例在2个不同的端口下运行,并且我的项目->属性-> web->“起始URL”指向固定端口,但是该Web应用实际上并未在该端口下运行。因此,我的浏览器被重定向到引用1539的“起始URL”,但是代码/调试实例在端口50803下运行。我的“开始URL”也要使用该端口。
项目->属性->网络->“服务器”部分->“使用Visual Studio开发服务器”->特定端口