【问题标题】:Visual Studio 2015 project no longer runs in debug modeVisual Studio 2015 项目不再在调试模式下运行
【发布时间】:2015-11-06 16:26:43
【问题描述】:

这就是我在调试配置中运行时得到的结果:

我显示这个的方法是启用“只是我的代码”,如果启动时没有任何用户代码,则会发出警告。这是我们项目最近发生的事情,我不确定我们做了什么导致这种情况。但我一直无法修复它。断点不会触发,快速观察会产生奇怪的结果。

我已经尝试在谷歌上搜索该问题,但没有一个标准的“断点不会触发”解决方案奏效。我完全没有想法。

我检查了配置管理器,每个项目也都设置为调试。

我关闭了“启用优化”,并且不再看到“您正在调试发布版本”对话框。它再次在断点处运行和停止!然而,输出窗口在启动时显示:

未加载模块“Navigo.exe”的符号。

  1. 使用调试构建配置或禁用调试选项“仅启用我的代码”。
  2. 检查调试选项下的“符号”设置。

所以这解决了我的 主要 问题,即不再能够使用断点和弹出窗口。这很奇怪,因为我认为您需要加载符号才能使断点工作。那么如果没有加载符号,断点如何工作呢?也许这只是一个坏消息?

【问题讨论】:

标签: .net visual-studio visual-studio-2015


【解决方案1】:

使用配置管理器检查调试配置的实际设置 - 它位于菜单 Build配置管理器... - 如果它们被设置为使用释放

另外,请确保项目正确定义DEBUG,并且未选中“优化代码”:

【讨论】:

  • 我刚刚在那里检查过,它们都设置为调试。我已经用屏幕截图更新了帖子。还有其他想法吗?
  • 编辑了我的问题。优化代码被选中,取消它似乎有帮助。但请参阅问题了解详情。
  • @Sen 好像有人错误地配置了您的调试构建设置。带有优化代码的调试版本没有任何意义。至于符号问题:也许有人为调试版本禁用了那些?点击构建设置中的“高级”按钮,并检查调试构建中的“调试信息”是否设置为“完整”。
  • 取消选中优化代码就可以了。不知道它是如何开始检查的,但是一旦关闭,一切似乎又开始工作了。所有其他调试设置都是正确的,这是唯一一个不正常的。我也不再收到“未加载符号”消息。
【解决方案2】:

这在我的几个项目中也发生过。我查看了我的构建设置,as suggested by stuartd。但是,我的构建设置中启用了“优化代码”。所以我启用了它并保存了项目。然后我取消选中它并再次保存。问题解决了。

有某种错误导致--optimize+ 标志被传递给调试器。在修复错误之前,启用它然后禁用它是一种简单的解决方法。

【讨论】:

  • 我以前在 IntelliJ IDE 中看到过这种情况,但直到现在才在 Visual Studio 中看到过。奇怪的是,这对我也有用。
  • 2017 更新:在 Visual Studio 2015 更新 3 中仍然看到这个问题。接受的答案没有解决问题;这个答案确实如此。
  • 这个答案也修复了我的调试环境。谢谢!
  • 哇!我有这个确切的问题,这对我也有用。 VS 2015 U3。难以置信...
  • VS2017 社区,仍然存​​在这个问题。感谢这个解决方案
【解决方案3】:

在应用更新 1 后,我开始出现这种情况。现有项目开始显示这一点,我可以用一个全新的项目复制它。所有配置都设置为 DEBUG,Optimize没有被选中。

最重要的是,第一次(或在清理之后)运行项目运行良好,没有任何消息。停止,然后重新运行项目(注意 - 项目未重建)将显示对话框。

唯一的解决方案是关闭 Just My Code 选项 - 这似乎是一个 hack,因为它在更新 1 之前没有任何问题。

【讨论】:

  • 不管怎样,Microsoft 支持人员已重现该问题并正在调查。我一听到就会报告/回答。
  • 同样的情况和症状,出现在 VS2015 更新 1 之后。在每个调试会话之前运行清理可以作为一种解决方法,因为它确实在那之后第一次正常工作。仅仅进行重建是不够,需要清理。
  • 来自微软的消息是这是一个已知问题(它最初是交给 Debugger 团队,但被确定为构建问题,现在在 Project 系统团队手中。还有其他在这个问题上存在错误,它被评为优先级 1,所以应该在下一次更新的轨道上。虽然正如预期的那样,不能就何时发布(或更新中的实际内容)做出任何承诺。所以。它是已知的并且正在处理中。至少在调试常规选项中关闭“仅启用我的代码”似乎是一种解决方法。
  • 是否有此问题的链接,以便我们跟踪其进展?
【解决方案4】:

如果上述解决方案都没有帮助,请检查项目的 AssemblyInfo.cs 以获取显式 DebuggableAttribute 应用程序。它似乎覆盖了编译器的调试/发布选项。

在我的案例中,我在文件中有这一行(遗留项目,不知道它是如何到达那里的)。删除它解决了问题:

[assembly: System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]

【讨论】:

  • 谢谢。我正在做一个项目,我的客户丢失了他们的原始源代码,所以我不得不使用反编译器生成它。我唯一的猜测是反编译器放入了这一行。
  • 是的,这也可能是我的原因。感谢分享。
【解决方案5】:

【讨论】:

  • 链接(实际上)已损坏:“Microsoft Connect 已停用”
【解决方案6】:

我也遇到过这个问题。解决方法是简单地清理 (Build > Clean Solution) 并重建 (Build > Rebuild Solution) 我的项目。

【讨论】:

  • 您能详细说明一下吗?例如。怎么做(要调用的菜单命令等)?
【解决方案7】:

以前的答案都不适合我。重启IIS 修复它。

【讨论】:

    【解决方案8】:

    只是给stuartd's answer添加一个旁注:

    请务必检查所有依赖项目是否具有相同的构建设置。如果您的主项目具有正确的设置,您将收到相同的消息提示,但您的依赖项目没有。事后看来,这显然是有道理的,但这并不是首先想到的。

    【讨论】:

      【解决方案9】:

      在我的情况下,问题是我的 ASP.NET 项目属性 Web 选项卡中的 IIS 项目 URL 设置为错误的 URL。

      它指向http://localhost,我在项目的不同副本中使用它。我打开的解决方案的地址实际上在我的本地 IIS 上配置为http://localhost:90

      更改为正确的地址解决了问题。

      【讨论】:

        【解决方案10】:

        我几乎尝试了此列表中的所有内容,但最后我通过打开解决方案属性并从“多个启动项目”切换到“单个启动项目”并再次返回来解决了这个问题。

        1. 右键单击解决方案并选择“属性”
        2. 在“通用属性”下,将选择“多个启动项目”更改为“单个启动项目”
        3. 点击确定
        4. 运行调试
        5. 结束调试并重复步骤 1-3,但切换回“多个启动项目”
        6. 对多个项目再次运行调试

        【讨论】:

          【解决方案11】:

          我也遇到了同样的问题...无论我做了什么 - 都没有用。

          这是一个新的空项目,这是问题所在。我最终删除了项目并添加了一个新项目 - 新项目必须有另一个名称;如果我使用相同的名称,错误就会再次出现 - 即使在重新启动、清理和重建之后...这一定是 Visual Studio 2015 中的错误。

          【讨论】:

            【解决方案12】:

            对我来说,这是来自私有 NuGet 服务器的 NuGet 引用。我不知道它是如何编译的,但是将引用更改为项目引用让我解决了这个问题。

            【讨论】:

              【解决方案13】:

              我在 Visual Studio 2015 Express 中打开了我的 Visual Studio 2012 Pro 项目并遇到了同样的问题。

              我检查了我的解决方案属性 → 配置属性,发现一个项目设置为 Release & x86。

              我改回DebugAny CPU,提示消失了。

              【讨论】:

                【解决方案14】:

                就我而言,我正在为Outlook 开发一个VSTO 插件,Outlook 在测试我的安装程序时意外加载了我最近安装的 DLL 文件的发布版本。

                看起来 Visual Studio 试图使用该 DLL 而不是我预期的 Debug 。修复 Outlook 正在加载的 DLL 文件为我解决了这个问题。

                【讨论】:

                  【解决方案15】:

                  here复制我的另一个答案。

                  正如@romanoza 所述,Microsoft 已使用以下信息更新了错误报告:

                  取消选中设置 Debug -> Options -> Suppress JIT optimization on module load (Managed only)

                  这是解决方法。他们接着说:

                  我们建议人们不要选中它,因为不选中它会提高性能和我的代码在特定场景中的行为。

                  最后,致谢:

                  这是一个错误,它在启用该设置的情况下不起作用,我们正在努力解决这种情况,以防某些客户仍希望在启用该设置的情况下进行调试。

                  【解决方案16】:

                  我遇到了同样的问题,最后我通过选择“禁用我的代码并继续”解决了它

                  Just My Code Setting

                  【讨论】:

                    【解决方案17】:

                    解决步骤:

                    • 转到有问题的项目的 Properties 页面的 Build 设置。

                    • 向下滚动到“高级...”按钮。

                    • 确保“调试信息:”没有设置为“无”

                      我建议您使用 full 选项。

                    【讨论】:

                    • 记得对所有要调试的程序集执行此操作。
                    【解决方案18】:

                    查看link by Patrick as a comment to the question 后,有人注意到一个解决方法,即停止IIS Express 中的站点。在 Visual Studio 中停止调试器后,我能够通过这样做来防止出现同样的问题。

                    但是,我对此进行了更多研究,并且我相信它也可能与调试器的“编辑并继续”设置有关。当我在 Visual Studio 的菜单 ToolsOptions... 中禁用它时,我不再遇到问题。但这会阻止你使用编辑并继续功能,所以我不确定这对你是否值得。

                    菜单工具选项调试器编辑并继续(滚动到常规列表底部) → 取消选中 Edit and Continue 复选框。

                    我在安装 Update 1 后也突然遇到了这种情况,但可能只是我一开始就关闭了这个设置……不过我不确定。

                    【讨论】:

                      【解决方案19】:

                      如果您只需要继续运行而不再有任何延迟,请从弹出窗口中选择最后一个选项,所有选项都会像以前一样运行。

                      【讨论】:

                      • JPEG 图像不是截图的最佳选择。你能用(清晰的)PNG 版本(甚至 GIF)替换它吗?
                      【解决方案20】:

                      这是一个奇怪的警报。

                      重建解决方案不一定会清除所有 DLL 文件(尤其是从依赖项目复制的文件)。

                      但是,重建依赖项目使这个警报消失了。

                      我在 Visual Studio 2015 Update 3 中遇到过这个问题。

                      【讨论】:

                        【解决方案21】:

                        我的解决方案与其他所有解决方案都有些不同,而且有点独特。

                        我正在使用一个包含托管代码和ASP Classic 混合的网站,两者都引用同一个程序集。 Visual Studio 抱怨我的托管 DLL 文件是发布版本。

                        问题是我的程序集中存在未捕获的异常,但它是由 ASP Classic 页面通过互操作引发的。 Visual Studio 无法处理此调试并显示错误消息。从托管代码抛出的相同异常会按预期启动调试器。

                        在我的托管程序集的构造函数中更正问题修复了所有问题。

                        现在回顾大局,一切都说得通了,但当时,错误消息让我走上了一条很深的路,我在这里尝试了所有答案,直到我得到“啊哈! "时刻。

                        【讨论】:

                          【解决方案22】:

                          我花了两天时间,看来重置 Visual Studio 2017 实验实例对我有帮助。

                          【讨论】:

                          【解决方案23】:

                          我正在使用 VS 2019 v16.10.4,只是遇到了这个问题。项目选项构建屏幕例程中的“检查优化代码选项 - 保存 - 取消选中优化代码选项 - 保存”有效,但仅在重新启动 VS 后。

                          旁注:太棒了 - 这是 5 年零 11 个月前提出的问题,但仍未解决...

                          【讨论】:

                            猜你喜欢
                            • 2015-03-20
                            • 2016-03-21
                            • 1970-01-01
                            • 1970-01-01
                            • 2016-05-03
                            • 1970-01-01
                            • 2015-11-25
                            • 1970-01-01
                            • 2019-09-27
                            相关资源
                            最近更新 更多