升级到Visual Sudio 2015,现在无法在调试中达到断点

我有一个我在Visual Studio 2013中构建的多项目解决方案,它工作正常,但现在我已升级到Visual Studio 2015,我无法再在调试模式下达到断点,因为任何项目都会选择作为选定的主项目“项目属性”页面中的启动项目。 我曾经能够点击其他项目,只需选择Debug – > Start New Instance。 我收到错误The breakpoint will not currently be hit. No symbols have been loaded for this document. The breakpoint will not currently be hit. No symbols have been loaded for this document. 我在Google上尝试了很多东西,包括:

  • 清洗/重建
  • 从项目中删除OBJ和BIN文件夹
  • VS修复了吗?
  • 重新启动
  • 卸载/重新安装
  • 为Properties – > Build启用了Confirmed Define DEBUG约束
  • 对于Properties – > Build,未选中Confirmed Optimize Code
  • 确认的属性 – > Build =>平台目标设置为所有项目的任何CPU
  • 尝试使用“以管理员身份运行”运行VS
  • 删除/ AppData / Local / Temp / Temporary ASP.Net Files /中的所有文件
  • 确保选择Debug – > Attack to Process – > Select“自动确定要调试的代码类型”
  • 确保属性 – > Web – > Debuggerts已检查ASP.Net(我的属性有ASP.NEt和启用编辑并继续检查,Natvie代码SQL Server和Silverlight未选中)
  • Properties – > Application中的Confirmed Target框架设置为与Web.Config / App.Config文件中相同的版本(4.6)。

那我在这里错过了什么? 为什么我不能再调试其他项目?

当我创建新的构建配置时,我遇到了类似的问题。 在寻找VS2015中的设置后,我注意到我的构建输出中没有* .pdb文件。 显然,如果有* .pdb文件,调试将不起作用。

对我来说,修复是进入每个项目的属性 – >’构建’页面 – >单击页面底部的“高级”按钮 – >在对话框的“输出”部分,我将“调试信息”设置为“充分”。

基本上,我创建了一个新的解决方案和项目,并将所有构建属性复制到调试器不再在断点处停止的解决方案中。 除了上面的设置,我还更改了以下设置以匹配默认的调试设置:

  • 我将相同的高级页面“内部编译器错误报告”设置为“提示”
  • 在主“构建”页面中,我检查了“常规”部分“定义DEBUG常量”和“定义TRACE常量”

我在选中Options-> Debugging-> General->抑制模块加载时的jit优化时解决了这个问题。 在我这样做之前,我还取消选中了工具 – >选项“项目和解决方案”“构建并运行”“仅在运行时构建启动项目和依赖项”。 在压制jit未经检查之后,不知道是否有任何理由可行。

我的情况是我在项目属性中启用了“优化代码”。

如果您只在启动项目中点击断点:

  • 工具>选项>项目和解决方案>构建和运行
  • 取消选中仅在运行时构建启动项目和依赖项

仅在Run上构建启动项目和依赖项

在这里用德语: 在此处输入图像描述

运行VS命令提示符作为admin运行命令: devenv /setup为我修复此问题。

我从来没有弄清楚发生了什么,但我最终建立了一个全新的项目,只是将文件导入其中,现在一切正常。

这让我疯了,直到我意识到在另一个解决方案中我设置了发布配置,将其更改回调试工作。

这可能不是你特别的答案,但我想我会分享它“以防万一”其他人被明显的东西驱使分心!

从我的旧系统迁移到新系统后,调试器没有为我的ASP应用程序命中断点。 我忘了在IIS中配置调试。

配置IIS以进行调试:

  • 网站> MyWebsite
  • IIS> ASP>调试属性
    • 启用客户端调试设置True
    • 将“ 启用服务器端调试”设置为“ True”

在IIS中调试属性

在我的情况下,我刚刚更改了运行模式的设置。

之前,我使用“发布”运行模式: 在此处输入图像描述

而现在,我正在使用“调试”运行模式: 在此处输入图像描述

我刚刚为我们的一个前端开发人员解决了这个问题。 它可能适用于您,也可能不适用于您。 我们使用IIS Express进行本地调试,并且在调试时他以某种方式脱离了正确的进程。

为了解决这个问题,我根据IIS Express检查了它附加的进程ID(右键单击任务栏上的IIS图标,选择Show All Applications,检查为应用程序列出的PID)。 然后我将它附加到正确的进程(在VS中运行解决方案,单击工具栏上的Debug,选择attach to process,使用上面从IIS Express获得的PID找到正确的进程)。 希望这有助于某人。

我从来没有能够使用上述方法,并最终回滚到VS 2013以获得良好的解决方案。 令人非常沮丧的是VS2015从稳定强劲的VS2003转变为VS2005。

我希望2017能够解决这些不一致问题。

您可以按原样保留所有内容,只需注意以下事项:

  • 高级编译器设置 – >生成调试信息 – >必须是“仅pdb”或“完整”
  • 高级编译器设置 – >启用优化 – >需要UNCHECKED

我也面临这个问题但是在Visual Studio 2015 Update 1之后,它现在已经修复了。

https://www.visualstudio.com/en-us/news/vs2015-update1-vs.aspx

重新启动Visual Studio对我有用。

我希望这可以帮助任何人。 如果您在IIS下的本地计算机上运行代码,则需要将解决方案附加到w3wp.exe进程。 因此,选择您的项目,在菜单上转到debug-> attach to process,在列表中您应该看到w3wp.exe

现在,如果您没有看到w3wp.exe,则可以选中show all processes复选框,或者转到IIS管理器并浏览您的网站以实际运行w3wp.exe实例。

在我的情况下,我无法调试,因为我在分析文件历史记录而不是解决方案中的实际文件时,在源代码管理临时文件中设置了断点。

我的项目是一个MVC Web应用程序,当我使用调试器运行项目时,在浏览器中打开了一个新选项卡,将我重定向到登录页面。 但在另一个选项卡中,我登录了用户可以做任何事情,但它没有达到断点,即使我很难刷新页面。 每次我关闭重新定向到登录页面的新打开的选项卡。 有一次,我用登录用户关闭旧选项卡,并在新打开的选项卡中再次实际登录到应用程序。 然后它开始达到突破点。