【问题标题】:VS 2015 Update 1 - Claiming I am debugging a release buildVS 2015 更新 1 - 声称我正在调试发布版本
【发布时间】:2016-03-05 20:15:47
【问题描述】:

更新到 VS 2015 更新 1 后,如果我运行一个 Web 项目 (MVC),停止应用程序,然后尝试再次运行它,VS 停止并弹出一个对话框声称

您正在调试 <myproject.dll> 的发布版本。

将 Just My Code 与使用编译器优化的发布版本一起使用会导致调试体验下降(例如,不会命中断点)。

问题是我没有运行发布版本。我显然正在运行我刚刚运行的(相同的)调试版本!为什么 VS 认为我正在运行发布版本?

清理解决方案并重新运行会清除错误消息,因此某处被冲洗掉了。

【问题讨论】:

  • 很想知道您是否已解决此问题。安装更新 1 后我遇到了完全相同的问题。清洁/重新运行暂时让我通过,但下次它又会再次发生。
  • 不幸的是,我没有。我正在与正在调查此问题的 Microsoft 支持人员联系。
  • 不管怎样,Microsoft 支持人员已重现该问题并正在调查。我一听到就会报告/回答。
  • @JohnT 好运了吗?
  • @Nick 实际上,没有。我会 ping 我的联系人,看看是否有任何更新。

标签: visual-studio-2015


【解决方案1】:

检查您的解决方案的配置属性。我遇到了同样的问题,发现我的调试配置实际上是在构建一些带有发布配置的项目。

【讨论】:

  • 抱歉,不,正如我所说,没有任何设置为 Release - 所有配置都是 Debug。清洁后运行不会显示错误。立即停止并重新运行会显示错误 - 两者之间没有任何变化,包括项目甚至没有重建。
【解决方案2】:

我遇到了同样的问题。我通过手动删除“bin”文件夹中的所有文件然后重建解决方案解决了这个问题。我不再得到这个对话框了。

【讨论】:

  • 已经试过了,没用。在一个全新的项目中遇到同样的问题。
  • 我也正要发布这个答案:) 这对我有用(VS2015 Update 3)。
【解决方案3】:

自从更新到 VS2015 Update 1 后,我一直遇到同样的问题。

在 Microsoft 的 Visual Studio 论坛上发现了一份类似的报告,该报告指出了与他们一起提出的错误报告 here

有各种解决方法,但我认为根本问题是调试结束时 IIS Express 没有关闭 - 这不是因为未选中编辑和继续选项。在修复错误之前我能找到的最快解决方法:

  • 右键单击托盘中的 IIS Express 图标并在调试后退出(感谢 David Totzke,他提供了有关错误报告的解决方法)

不太好,但我认为目前没有合适的解决方案。

【讨论】:

  • 我当前使用的解决方法是清洁解决方案,然后是开始调试。
  • 顺便说一句,有时我必须真正杀死 iisexpress;从上下文菜单中退出不会让它死
【解决方案4】:

来自 Microsoft 的消息是这是一个已知问题(它最初属于 Debugger 团队,但被确定为构建问题,现在已在 Project 系统团队手中。在此问题上还有其他错误未解决,并且它的优先级为 1,因此应该可以在下一次更新中正常运行。尽管正如预期的那样,无法就何时发布(或更新中的实际内容)做出任何承诺。

所以。它是已知的并且正在研究中。至少现在在调试常规选项中关闭“仅启用我的代码”似乎是一种解决方法。

【讨论】:

  • 在 VS2017 中仍然得到这个,但只适用于一个 DLL。有更新吗?
  • 是否有任何 URL(例如 UserVoice)跟踪此问题?
  • 对 VS 2017 使用相同的解决方法。奇怪的是它尚未正确修复。无论如何,感谢您的工作。
  • 在 VS2019 中仍然得到这个。
【解决方案5】:

清理(和重建)解决方案对我来说是一种临时解决方法。您也可以选择 Debug > Options 并取消选中 Suppress JIT optimization 复选框。

【讨论】:

  • VS 2017 版本 15.1 给了我虚假(“调试发布版本”)错误。 Clean and Rebuild 让它消失了。
  • Visual Studio 2015 Update 3,当取消选中 Suppress JIT 时出现此错误。选择它解决了问题。
【解决方案6】:

正如@romanoza 所提到的,Microsoft 更新了(现在丢失的)Microsoft Connect 错误报告,(以前位于 here,以防您可以在某处找到存档)并提供以下信息:

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

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

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

最后,致谢:

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

更新:根据 cmets,现在看来,某些开发人员默认取消选中该框,并且选中它在某些情况下可以解决完全相同的问题。很奇怪。

【讨论】:

  • 在我的情况下,我实际上必须做完全相反的事情。我必须勾选上述设置的复选框。这一切都很奇怪。
  • 和dyslexicanaboko一样——我已经勾选了复选框来删除消息。
  • Visual Studio 2017 年 4 月版本出现同样问题,必须勾选复选框
  • 我投票不是因为答案有效,而是因为答案的第一个 comment 是有效的!而值得突出。 (另请注意,外部链接已失效。它会将您带到“Microsoft Connect 已停用”页面。)
  • 感谢克雷格的评论。根据您的反馈,我做了一个小修改。希望这将有助于其他人前进!
【解决方案7】:

我注意到,在我停止调试器后,Visual Studio 并未终止 iisexpress 进程。手动终止该进程似乎可以解决我的问题。

这似乎已在更新 2 中得到修复。

【讨论】:

    【解决方案8】:

    按照answer 中的建议,我解决了在 Configuration Manger 窗口中将配置设置为 Debug 的问题。

    【讨论】:

    • 虽然这不是默认设置(有人必须严重破坏您的配置才能发生这种情况!),我们大多数人已经检查过了。 (无论如何,这是我检查的第一件事。)——正如 OP 所说,他肯定在调试模式下构建,而且我知道我也在进行实际的调试构建——在调试模式下构建,禁用优化,调试声明,生成一个有效的 pdb,等等。
    • 很高兴你把它放在这里,我敢打赌有很多人也错过了它。
    【解决方案9】:

    很确定这已在 Visual Studio 2015 Update 2 中修复。

    我以前经常看到这个(每天多次),但自从更新到更新 2 后就再也没有看到过。

    【讨论】:

    • 绝对没有。我在 VS 2015 Update 3 上突然明白了。
    • 我没有说他们没有在更新 3 中再次破坏它。;)
    • 我在开发者上更新了 2。盒子现在,我仍然看到它。 -- 我在我的更新 3 框中没有看到它。 :-/
    【解决方案10】:

    我注意到这里的答案不完整,我遇到了同样的问题,通过打开项目属性并在构建选项卡和调试配置下解决了 取消选中 “优化代码”。您还应该检查上面提到的配置管理器以确保它也是正确的。答案来自这篇文章,他们应该得到赞誉:VS2015 Project no longer runs in debug mode

    谢谢,

    【讨论】:

    • 经过这么多努力,我发现这是根本原因。奇怪的打开Optimize code Visual Studio 认为它的Release 模式甚至断点都不起作用。关于调试的一切都崩溃了。
    • 你救了我的命。你是神。
    【解决方案11】:

    检查 IIS 项目 URL 是否确实指向您认为的位置。如有疑问,请单击“创建虚拟目录”按钮。

    我最近遇到了这个问题,我一直在运行生产代码库的临时版本,并将 IIS 中的文件夹重新指向临时版本,实际上是在运行生产版本,而不是我尝试的调试版本调试。

    【讨论】:

      【解决方案12】:

      解决方案似乎与遇到问题的人一样多,但就我而言,我不得不删除并重新添加项目参考。项目引用位于同一解决方案中的单元测试项目中。

      【讨论】:

        【解决方案13】:

        对我来说,我在这个 FileListAbsolute.txt 文件中找到了 3 个 \Release\ 文件夹引用:

        C:\Projects\MyWebApp.Web\obj\Release\MyChildWebApp.Web.csproj.FileListAbsolute.txt

        他们是这样的:

        C:\Projects\MyWebApp.Web\obj\Release\MyChildWebApp.Web.csprojResolveAssemblyReference.cache

        C:\Projects\MyWebApp.Web\obj\Release\MyChildWebApp.Web.dll

        C:\Projects\MyWebApp.Web\obj\Release\MyChildWebApp.Web.pdb

        只需在 VS 之外删除这 3 行,然后重新打开解决方案即可解决问题。希望有帮助。

        【讨论】:

          【解决方案14】:

          就我而言,我已将“配置管理器”中整个解决方案的“活动解决方案平台”从 x86 更改为任何 CPU,解决了问题

          【讨论】:

          • 也为我工作。
          【解决方案15】:

          我已经尝试了所有答案,对我有用的一个是删除一些 NuGet 包,不仅仅是参考,而是删除包,在我的情况下是 PostSharp。起初我试图从所有项目中删除引用,但它不起作用,然后我只是从管理器中删除了包。我不知道究竟是什么原因,但这就是解决我的问题的原因,希望它可以帮助那里的人。

          【讨论】:

            【解决方案16】:

            重新启动 Visual Studio。这在 2017 Professional 中为我解决了这个问题。

            【讨论】:

              【解决方案17】:

              就我而言,错误消息是正确的。我正在运行一个加载已发布版本的应用程序。所以我通过让应用程序加载调试版本来纠正它。

              小学,我知道,我意识到我让自己看起来像个白痴。但有时问题正是报告的内容。

              【讨论】:

                【解决方案18】:

                这对我有用。

                如果是 web 项目,转到 web 项目的项目属性,然后

                1. 如果选择了本地 IIS,请重新启动 IIS 服务器。
                2. 如果选择了 IIS Express,请从任务托盘图标中退出 IIS Express。

                似乎某些 dll 被缓存了,所以上述步骤将使缓存无效。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2019-10-20
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-10-27
                  • 2020-08-02
                  相关资源
                  最近更新 更多