【问题标题】:Error: You are debugging a Release build of X.dll错误:您正在调试 X.dll 的发布版本
【发布时间】:2016-11-30 19:06:27
【问题描述】:

背景

我有一个 ASP.NET MVC 应用程序项目,以及 Visual Studio 解决方案中的各种其他项目。不同的项目使用不同版本的 NPoco 库如下:

  • MVC 项目通过 NuGet 包含一个 NPoco 版本。
  • 其他一些项目通过引用 DLL(不是通过 NuGet 提供的 DLL)包含 NPoco 的(可能不同的)版本。
  • 其中一个项目是一个 NPoco 版本的源代码,并进行了一些更改。

我正在使用 Visual Studio 2015 Update 3 14.0.25422.01。

错误

由于某种原因,当我在调试器中使用 Visual Studio 中的正常启动调试命令启动此应用程序时,它会启动,但也会产生以下警告:

如果我按继续调试,一切似乎仍然照常工作,包括断点。

这个问题最近才开始发生。

问题

  1. 有人知道是什么原因导致了上述错误吗?
  2. 我有什么配置错误吗?

【问题讨论】:

    标签: visual-studio debugging visual-studio-2015 release visual-studio-debugging


    【解决方案1】:

    关闭并重新启动 Visual Studio 对我有用

    【讨论】:

      【解决方案2】:

      这对我来说是在中午随机发生的。

      尝试清理,删除所有 BIN 和 OBJ 文件夹...没有任何效果。

      我必须停止/启动 IIS 应用程序池,以便 ASP.NET 解决方案修复它。

      【讨论】:

        【解决方案3】:

        我试过了。。 清理整个解决方案, 重建整个解决方案, 重新启动 Visual Studio... 但没有帮助。

        最后,

        我重新启动了我的电脑

        然后启动 Visual Studio,清理并重建,然后调试工作完美无缺:)

        【讨论】:

          【解决方案4】:

          右键单击您的解决方案并选择属性。

          然后,转到左侧的配置属性并选择其下的配置。 确保您正在运行的项目的配置处于“调试”而不是“发布”。

          如果配置处于“发布”状态,您会收到此错误。

          【讨论】:

          • 就是这样,谢谢!
          • 在 MV sol 配置下拉列表中从 debug 更改为 release
          【解决方案5】:

          将我的项目转移到新机器后,我遇到了同样的问题。

          下载合适的 Target 框架对我有用。我的项目使用 .Net Framework 4.7.2,下载 .Net Framework 4.7.2 后错误消失。

          【讨论】:

            【解决方案6】:

            我在 Visual Studio 2019 中也遇到了类似的问题 以下步骤解决了我的问题 Debug-> Options->取消选中 Enable Just my code 选项

            【讨论】:

            • 很好,它很有魅力,谢谢...
            【解决方案7】:

            这发生在我使用 NuGet 包时。

            假设您要调试来自 Project1...

            的代码

            如果您在解决方案 (.sln) 的任何项目中引用了 Project1 NuGet 包,请确保将其删除。不要添加 Project1 的 NuGet 包,而是直接添加 Project1 (.csproj) 作为对需要 Project1 在解决方案中。这样您就可以在调试时单步执行代码,并且 Visual Studio 不会再对“发布”版本大喊大叫了。

            如果 Project1 来自不同的解决方案 (.sln),您可以右键单击当前解决方案并选择添加现有项目... 选择 Project1 .csproj 例如。然后转到任何需要 Project1 => 右键单击​​ => 添加 => 引用并选择 Project1 的项目。

            【讨论】:

              【解决方案8】:

              我今天第一次遇到这个问题(在 Visual Studio 2017 中)。对我来说,它原来是由我的应用程序的不同版本引起的,在发布模式下构建,在我正在调试的 IIS 中的同一个应用程序池下运行。我给不同版本的应用程序提供了自己的应用程序池,问题就消失了。

              【讨论】:

                【解决方案9】:

                这是典型的 Microsoft 错误之一,可能有 20 个解决方案。对我来说,我重新启动了运行 Visual Studio 2017 的服务器,它解决了这个问题。

                【讨论】:

                  【解决方案10】:

                  此问题的另一个原因是以下“程序集级”属性:

                  [assembly: System.Diagnostics.Debuggable(true, false)]
                  

                  (我只是偶然发现了这一点……当遇到此类问题时谁会检查 AssemblyInfo.cs……对 - 没有人)

                  编辑:刚刚看到其他人已经添加了这个.....(虽然有其他参数) - 而且 - 这个属性的原因也是“从 exe 反编译”(我们丢失了该特定项目的源代码: -/)

                  【讨论】:

                    【解决方案11】:

                    在我的情况下,一些狡猾的骗子将其放入 AssemblyInfo.cs 文件中:

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

                    注释掉它并开始工作

                    【讨论】:

                    • 我很高兴有帮助。我应该提到,我后来发现这个特定项目是从我的公司丢失源代码的项目的“发布”版本中反编译的!因此,在任何被反编译的“Release”程序集中找到它可能是很常见的。
                    【解决方案12】:

                    右键单击解决方案>属性>配置管理器>活动解决方案配置:新建
                    为新的解决方案配置命名。从“调试”复制设置。

                    我为这个错误做了一切,但这个解决方案有效。

                    【讨论】:

                      【解决方案13】:

                      这在 VS2017 中发生在我身上,即使在将配置更改为 Build 之后也是如此。重启VS2017时问题已解决

                      【讨论】:

                        【解决方案14】:

                        “优化代码”选项位于 Visual Studio 项目级别。删除它以用于调试模式。

                        【讨论】:

                          【解决方案15】:

                          就我而言,我为我的项目删除了Webapplication.dll,并删除了发布文件夹中的内容。再次重建项目,它对我有用。

                          【讨论】:

                            【解决方案16】:

                            如果有人仍然遇到这个问题,对我来说,这是因为我安装了我试图调试的软件,混淆了 GAC。

                            融合记录器帮助我解决了这个问题哈。

                            【讨论】:

                              【解决方案17】:

                              刚刚有一个类似的问题,我可以通过清理我的解决方案 3 次并重建来解决。希望这对其他人也有帮助。

                              【讨论】:

                                【解决方案18】:

                                我发现,当您更新依赖于引用项目(您可能已修改版本)的 Nuget 包时,它会将其替换为 dll 的 Nuget 版本。

                                要在更新(或添加)您的 nuget 包后解决此问题,您需要删除对 dll 的引用(例如 NPoco),并使用修改后的版本添加对项目的项目引用。

                                【讨论】:

                                • same here...在添加 nuget 包后立即开始。起初重新引用修复没有影响;即使在重建之后。我不得不重新启动VS。然后它清除了。 @TrtlBoy,谢谢你的帮助。
                                • 一个简单的重建固定矿井。谢谢@puddleglum。
                                • 要补充一点,如果您从项目中卸载 nuget 包并直接添加对项目的引用,请确保解决方案中的其他任何内容都没有使用 nuget 包。就我而言,还有另一个 csproj 仍在使用 nuget 包,它产生了这条消息。我从所有项目中卸载了 nuget 包并手动重新添加了引用。
                                • 很好的答案!在解决方案测试中,直接引用项目,而不是 nuget。无需重启 VS。如果您有多个项目引用它,您可能会遇到问题。但无论如何,您只需要包含一个测试项目
                                【解决方案19】:

                                在 Debug->Options->Suppress JIT optimization on module load (Managed only)下禁用此选项。

                                之前提交的连接报告:

                                https://connect.microsoft.com/VisualStudio/feedback/details/2116788/flag-optimize-is-passed-to-the-debugger-even-while-the-build-settings-optimize-code-is-not-enabled-on-mvc-c-web-projects-when-using-just-my-code.

                                还请确保所有项目都处于调试模式,优化代码未选中,如下所示:

                                VS2015 Project no longer runs in debug mode

                                【讨论】:

                                • 谢谢。 Suppress JIT optimization on module load 设置被禁用,但是当我启用它时问题停止发生。
                                • 不客气,至少,我们知道它确实与这个调试选项有关。
                                • 谢谢您-您建议的解决方案有效! 注意: 无法访问 Microsoft 反馈链接,它显示:“找不到页面 - 找不到您请求的内容或您无权查看它。”
                                • 但是这个复选框是什么? “继续调试(不要再问我)”只是为您检查吗?选中此框会失去什么?
                                • 我认为您的意思是“启用此选项”。这对我有用,但是查看它启用了 Build -> Optimize code 的问题项目,并按照 Mahesh Malpani 的建议禁用了该项目。
                                猜你喜欢
                                • 2019-10-20
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 2010-10-27
                                • 2020-08-02
                                相关资源
                                最近更新 更多