“单步执行”突然没有在Visual Studio中工作('Step Into' is

2019-06-24 23:05发布

突然间,我遇到了一个问题,我不能在Visual Studio调试通过踏进任何代码。 步骤在工作正常,但它拒绝踏入(F11)我的任何代码。 这是工作之前,现在突然没有。

我已经尝试了一些东西下面,但我仍然没有成功:

  • 删除在我的解决方案每一个项目,清洁液,重新构建解决方案的所有的bin文件。

  • 在构建解决方案项目indivdualy

  • 重新启动机器

它的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.

Answer 1:

与Visual Studio关闭:

  • 删除解决方案的锁文件(包含调试信息,用户设置,如破发点,书签,和其他用户的设置。)
  • 删除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

见链接邪恶锁文件-战斗,与Visual Studio殊荣由JMarsch提及。



Answer 2:

就我而言,我开始步入其产生的回报的方法IEnumerable 。 在这种情况下,F11可以在方法跳过,直至IEnumerable迭代,因为它的执行被推迟到那个时候。



Answer 3:

我用VS 2017年,但这部作品在2015年也是如此。 我的问题是,当我设置一个断点代码将正确停止在这一点上,但是当我按下F10或F11代码将简单地完成运行,而不是去到下一行。 我也注意到,虽然该代码在断点处停止我不能用我的光标移动到我的变量悬停在看到自己的价值。 这里是我解决了问题

  1. 在项目打开的,但没有运行确保显示标准工具栏(这可能是因为它是默认)
  2. 看看下拉列表中有选项调试,发布,配置管理器在工具栏中。 从这个列表中选择调试。 煤矿被设置为Release


Answer 4:

试试这个:

  1. 从删除临时ASP.NET文件%temp%位置。
  2. 清理并通过建立一个解决方案中的一个项目,然后建立你的主机,并尝试调试。

它为我工作。



Answer 5:

  1. 是WCF项目的Web应用程序呢? 是IT启用ASP.NET调试? (在WCF项目点击右键,选择属性 | 网站

  2. 我也有这种事发生在项目时引用搞砸了 - 确保从Web应用程序中引用的是该项目的一个溶液中的同一个副本。

  3. 检查配置管理器(在解决方案资源管理器中 ,在解决方案右键单击| 配置管理器 ),并确保这两个项目正在建设。

  4. 有时.suo文件被损坏,你可以得到各种怪异的行为。 你可以尝试删除它(制作备份副本,如果你是偏执狂,看到邪恶的锁文件-战斗,并与Visual Studio获奖 )。



Answer 6:

您的F11键可反弹到别的东西。 如果您单击Visual Studio中的一步,进入按钮,它可能工作。



Answer 7:

我遇到过同样的问题。

我想步入一个返回的方法IEnumerator ,我只是通过简单的调用(方法只是名称)调用它。

private void Start()
{
    GetTagsFromCloud();
}

但由于它在后台运行,它是更好地与下面的方式来调用它。

private void Start()
{
    StartCoroutine(GetTagsFromCloud());
}


Answer 8:

根据我已阅读和了解,你应该看看以下文件:

项目议会Name.pdb bin目录。 如果你没有看到它,它没有得到建立。 查看调试信息设置为全我的意见,和选项/调试/符号。

该项目的构建输出设置为详细或详细(工具/选项/项目和解决方案/生成和运行/ MSBuild项目生成输出的详细程度)。

寻找与该文件(即AssemblyName.pdb)某些任务,删除,复制等,看看是否能找出如果它(试图)删除PDB文件,其中它是从(DLL / EXE),其中它的引用把它,复制它,等等。

如果它没有被建立,你只看到删除任务。 如果是,你会看到复制和引用任务。 你需要点那个组件(AssemblyName.exe)的模块控制台以获取它的符号文件(即如该PDB文件被复制),这些拷贝路径和参考路径会告诉你。



Answer 9:

在我而言,我运行一个Web应用程序从Visual Studio中的。 该组件我试图在我的常规文件系统从一个位置被引用,但在运行时它被从GAC加载。 我一直以为.NET试图从本地bin第一则GAC加载,但我想不会。 无论如何,这是不是能找到在GAC版本中的.pdb调试符号,这就是为什么我不能够介入。一旦我更新了装配在GAC和提供的.pdb文件,它的工作。



Answer 10:

如果您自定义输出路径,确保所有的输出路径都指向相同的输出目录



Answer 11:

在我来说,我是想步入一个Web服务方法,它不能正常工作。 开始我已经解决使用Unity服务的一个实例后工作。

这里更多的信息: 使用Unity类型的实例解析



Answer 12:

在我在VS2008的情况下检查选项“启用非托管代码调试”下的项目属性|调试的伎俩。 我不知道为什么这个工作,因为项目中的所有的代码是在vb.net。

在以后的版本中这个选项已更名为“启用原生代码调试”。



文章来源: 'Step Into' is suddenly not working in Visual Studio