'Step Into'突然在Visual Studio中无效

Nic*_*rca 42 .net debugging visual-studio-2010 visual-studio-debugging

突然之间,我遇到了一个无法通过Visual Studio中的调试进入任何代码的问题.步骤结束工作正常,但它拒绝进入(F11)我的任何代码.这在以前工作,现在突然之间没有.

我已经尝试了下面的一些事情,但我仍然没有成功:

  • 删除解决方案中每个项目中的所有bin文件,清理解决方案,重新构建解决方案.

  • 在解决方案中单独构建项目

  • 重启机器

它是一个ASP.NET C#应用程序,在本地使用WCF服务.它处于调试模式.我在使用该服务的页面上设置了断点.断点命中,但它不会进入服务代码.

ASP.NET站点和服务代码都在同一个解决方案中.这突然不起作用,之前确实有效.

我该如何解决这个问题?

在服务项目中添加断点我收到警告:

断点当前不会被击中.没有为此文档加载任何符号.

我删除了所有项目的所有bin文件夹,并逐个重新构建它们.它们都成功了,但我仍然认为符号不会加载到我在解决方案中的任何项目中的任何断点上,而不是断点工作的ASP.NET项目.我之前能够调试步骤进入所有项目,这是一个突然的事情.

输出窗口中的信息..

'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\SMDiagnostics\v4.0_4.0.0.0__b77a5c561934e089\SMDiagnostics.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.DurableInstancing\v4.0_4.0.0.0__31bf3856ad364e35\System.Runtime.DurableInstancing.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Xaml.Hosting\v4.0_4.0.0.0__31bf3856ad364e35\System.Xaml.Hosting.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\2d49cf50\14eee2cf\App_Web_jmow15fw.dll', Symbols loaded.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Serialization\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.WorkflowServices\v4.0_4.0.0.0__31bf3856ad364e35\System.WorkflowServices.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Web\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Web.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Discovery\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Discovery.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Activities\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Activities.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Routing\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Routing.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Channels\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Channels.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.IdentityModel\v4.0_4.0.0.0__b77a5c561934e089\System.IdentityModel.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Run Code Online (Sandbox Code Playgroud)

AMi*_*ico 49

关闭Visual Studio:

  • 删除解决方案的suo文件(包含调试信息,用户设置,如断点,书签和其他用户设置.)
  • 删除Visual Studio缓存文件(见下文)
  • 删除所有临时文件(从VS9到VS10的转换是VS10使用临时文件夹)
  • 使用Windows资源管理器手动删除所有obj和bin文件夹.

打开Visual Studio并重建所有.这总是有效的.请参阅C#VS2010进入中断模式失败.

以供参考:

Private Sub ClearVS9
    ClearFolder(oShell.ExpandEnvironmentStrings("%APPDATA%") & "\Microsoft\VisualStudio\9.0\ProjectAssemblies")
    ClearFolder(oShell.ExpandEnvironmentStrings("%APPDATA%") & "\Microsoft\VisualStudio\9.0\Recent")
    ClearFolder(oShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\Local Settings\Application Data\ApplicationHistory")
    ClearFolder(oShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\Local Settings\Application Data\Microsoft\VisualStudio\9.0\ProjectAssemblies")
    ClearFolder(oShell.ExpandEnvironmentStrings("%WINDIR%") & "\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files")
End Sub

Private Sub ClearVS10
    ClearFolder(oShell.ExpandEnvironmentStrings("%APPDATA%") & "\Local\Microsoft\WebsiteCache")
    ClearFolder(oShell.ExpandEnvironmentStrings("%APPDATA%") & "\Local\Microsoft\VisualStudio\10.0\ProjectAssemblies")
End Sub
Run Code Online (Sandbox Code Playgroud)

请参阅链接The evil suo文件 - 使用 JMarsch提到的Visual Studio进行战斗和获胜.


Jos*_*Noe 24

在我的情况下,我正在采取一种方法,让一个人回来了IEnumerable.在这种情况下,F11可以跳过该方法直到IEnumerable迭代,因为其执行被推迟到那时为止.


use*_*607 6

在此输入图像描述我使用VS 2017,但这也适用于2015年.我的问题是,当我设置断点时,代码将在该点正确停止,但是当我按下F10或F11时,代码将完成运行而不是转到下一行.我还注意到,当代码在断点处停止时,我无法使用光标悬停在我的变量上以查看它们的值.以下是我纠正问题的方法

  1. 项目打开但未运行时确保显示标准工具栏(可能是因为它是默认值)
  2. 查看工具栏中的下拉列表,其中包含Debug,Release,Configuration Manager选项.从此列表中选择Debug.我被设定为发布


Dan*_*eis 5

当 Visual Studio无法加载DLL的符号(.PDB 文件)时,它不会进入代码。

下面是一篇文章的链接和一些屏幕截图,它们解释了如何发现 Visual Studio 尝试加载 PDB 文件的位置。一旦你找到了你的目录,只需将 .pdb 文件复制到那里,Visual Studio 就会进入。

https://devblogs.microsoft.com/devops/understanding-symbol-files-and-visual-studios-symbol-settings/

模块窗口 --> 调试 > 窗口 > 模块

模块窗口 --> 调试 > 窗口 > 模块

符号负载信息....

符号加载信息窗口