提问



快递版C#桌面应用程序。工作后5秒钟没有工作。


我尝试了以下内容。



  • 确保在所有程序集上设置调试配置,调试标志和完整调试信息。

  • 从我的整个计算机中删除所有bin和obj文件夹以及与项目相关的所有DLL。

  • 重新创建导致问题的项目。

  • 重新启动。



我在解决方案中有两个WinForms项目。其中一个加载调试信息,一个没有。他们都引用程序集我试图以完全相同的方式在项目文件中获取调试信息。有任何想法吗?





我想在这里添加,主要是为了我自己回来审查这个问题,在装入程序集之前不加载符号,并且在需要之前不加载程序集。如果断点位于仅在主程序集中的一个函数中使用的库中,则在调用该函数之前,将不会加载符号(并且将显示断点未被命中)。

最佳参考


开始调试,一旦到达断点或使用Debug > Break All,使用Debug > Windows > Modules。您将看到加载到进程中的所有程序集的列表。找到要获取调试信息的那个。右键单击它并选择符号加载信息。您将获得一个对话框,其中列出了查找程序集的.pdb文件的所有目录。根据实际的.pdb位置验证该列表。确保它找不到旧的.pdb文件。


在正常项目中,程序集及其.pdb文件应始终由IDE复制到与.exe相同的文件夹中。项目的bin \\ Debug文件夹。如果您一直在玩GAC,请务必从GAC中删除一个。

其它参考1


首先尝试通过右键单击项目>重建来重建项目
如果这不起作用,请尝试清理项目(右键单击项目>清理)


如果那不起作用,请检查:



  1. 右键单击项目

  2. 选择 [[属性]]

  3. 选择 [[Build]] 标签

  4. 确保 [[定义DEBUG常量]] 并选中 [[定义TRACE常量]]

  5. 点击构建标签页底部的 [[高级]] 按钮

  6. 确保 [[调试信息:]] 设置为 [[完整]]

  7. 点击 [[确定]]并重建项目; - )



(步骤6生成.pdb文件,这些是调试符号)

其它参考2


只是简单的尝试 - 你可能已经尝试过了。
右键单击解决方案资源管理器中的解决方案,单击清理解决方案,这将删除与解决方案关联的所有已编译和临时文件


重建解决方案并尝试再次调试。


我在解决方案中也遇到了多个项目的断点问题 - 一些编译为x86,一些编译为x64。

其它参考3


禁用调试/常规设置中的仅我的代码选项。

其它参考4


我在类似的帖子上发现了Hans K发现的这个修复程序>> HERE<<:



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

  
  查看Common Properties - > Startup Project

  
  选择多个启动项目

  
  选择需要调试的项目的开始操作。


其它参考5


选定的答案让我解决了我的问题。但我需要做更多的事情:


即使在下拉列表中选择了Debug:





在项目Properties> Build中:





Visual Studio未将符号加载到特定项目。所以在该下拉列表中我选择Configuration Manager并看到我的web项目的设置不正确:








然后我将其设置为Debug并开始生成.pdb文件。
但是我需要手动复制PDB和DLL并放入VS正在寻找的文件夹(这是所选答案帮助我的地方):




其它参考6


Debug> Windows> Modules看看正在加载哪些模块让我朝着正确的方向前进。


在我的例子中,IIS Express似乎正在从临时ASP.NET文件加载不同的DLL。


解决方案?



  1. 浏览C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs

  2. 删除此目录中的所有内容!


其它参考7


我能够通过简单地将附加到进程中的选项设置为自动确定要调试的代码类型选项来修复错误,如附带的屏幕截图所示。


只需按照以下步骤操作:



  • 从菜单栏
  • 转到调试
  • 点击附加到流程

  • 附加到选项附近,点击选择按钮

  • 选择代码类型窗口将会出现

  • 现在选择自动确定要调试的代码类型选项,然后单击确定按钮。





其它参考8


有时,即使它给你这个错误,breakpoint仍然会被击中,所以只需忽略错误。这在MVC web appViews中经常发生。

其它参考9


检查bin/Debug文件夹中是否缺少.pbd文件。如果是,则转到项目的属性,选择构建,然后选择底部的高级。在出现的新窗口中的调试信息下选择完整。这是我的问题,并为我解决了。


[14]

其它参考10


在我的案例中,在我的项目属性中检查了优化代码。这导致VS看到我的程序集不是我的代码,反过来,它没有为它加载符号。


解决方案是取消选中此项。
[15]

其它参考11


尝试在Windows中以管理员身份运行visual studio。

其它参考12


只需检查您的解决方案是否处于发布模式。

其它参考13


我们找到了问题的原因。此代码使用.aspx文件的Page指令中的CodeBehind属性,而不是CodeFile属性(ASP.NET 2.0及更高版本)。经过几天的绝望,简单的搜索和替换解决了这个问题。

其它参考14


Microsoft Visual Studio Express 2013版中不存在开始调试,调试+ Windows +模块选项。


在工具选项中取消选中使用托管兼容模式调试修复此问题。

其它参考15


您需要在编译器设置中启用生成调试信息

其它参考16


我尝试了上面提到的一切,但没有任何效果。
[[清除解决方案,并检查PDB文件等]]


即使发布相同的解决方案也无法解决问题。


然后我回到了我通常要解决的问题(愚弄这个顽固的Visual Studio)


我所做的只是故意改变代码并发布解决方案。
然后我恢复了更改并再次发布。



Voila [[PDB文件摆脱邪恶的精神]] ..不是一个聪明的决议,但这确实有效..: - |

其它参考17


这些答案都没有解决我的问题。我尝试了另一件事,因为带有stop的项目实际上并不是加载的项目。我发现Hans Passant写了.dll我想停止调试器和关联的.pdb文件复制到.exe附近这些文件的日期较旧,所以我认为它们在运行时没有更新。我手动删除它们,Visual Studio创建另一对并将这个新对放在.exe附近。现在破坏了!


也许Visual Studio无法复制和替换.exe附近的现有文件(.dll和.pdb),因为还有另一个。因此,如果我手动删除,那么VS可以在.exe附近创建新的。


我认为另一个更改(检查等 - 从另一个答案)触发了一些东西,Visual Studio复制并将dll和pdb从项目文件夹替换到exe附近的文件夹,这是一个解决方案。


我认为问题的根本原因是Visual Studio在运行时使用另一个文件,没有来自项目的文件,带有stop。


也许这个答案可以帮助别人!

其它参考18


要检查的事项要明确:确保将配置设置为Debug而不是Release。您可以在发布模式下调试启动项目,但不能在引用的类库中调试。

其它参考19


而不是仅仅做所有这些事情


关闭并重新打开



它将解决问题的解决方案

其它参考20


仅限Web应用程序(IIS Express):



  • 右键单击IIS Express Tray并关闭IIS。

  • 清除解决方案



[16]

其它参考21


我正在使用VS10将C#应用程序与静态库集成 - 我是新手。我编写了一个托管代码dll来连接它们。我可以在任何地方设置断点但是静态库。我得到了上面描述的消息 - 没有符号已加载此文档。我尝试了上面的许多建议。我可以看到符号没有被加载。我终于注意到一个复选框Configuration Debug,启用非托管代码调试。这允许我在静态lib函数中设置断点。

其它参考22


我仔细阅读了上面的所有答案,但没有一个能解决我的问题。


就我而言,我正在编译一个类库(DLL)。似乎没有模块在Debug - > Modules中加载,所以我甚至无法手动加载符号。


我的解决方案是将此行添加到我的代码中:


System.Diagnostics.Debugger.Launch();


达到此代码后,将触发异常并且.NET Framework会显示一个对话框,询问您要使用哪个Visual Studio(即VS 2008的新实例,VS 2013的新实例等)来调试程序。您可以在加载项目的情况下选择VS的现有实例。这会将进程附加到VS会话并加载所有符号,现在您可以调试项目。


当然,编译必须使用Debug配置,而不是Release。

其它参考23


项目属性(然后选择您的构建配置)>构建选项卡>高级...>调试信息(下拉列表)


设置为all或pdb-only然后重建

其它参考24


在我的情况下,我试图在relase模式下调试。一旦我将其更改为调试模式。它的工作

其它参考25


对于ASP.Net应用程序,请检查站点的属性ASP.NET选项卡。确保选择了正确的ASP.NET版本。

其它参考26


我也有同样的问题,我在x86(或x64)中重建整个解决方案(包括引用的项目)


即使我将所有项目从Configuration Manager(Build-> ConfigManager)设置为x86,我的一些项目也没有设置为x86。


因此,只需右键单击project-> properties-> Debug选项卡,验证Configuration和Platform。

其它参考27


这花了我一段时间尝试了上面的其他选项,并出于一些奇怪的原因调试停止工作。


工具 - >选项 - >调试 - >常规 - >(取消)要求源文件与原始版本完全匹配

其它参考28


我知道我已经很晚了,但我认为我做错了,按照上面的步骤然后我意识到我将解决方案配置错误地设置为释放:)

其它参考29


右键单击Project - > Properties - > Go to Build 选项卡 - >取消选中优化代码。
为解决方案中的任何项目执行此操作