错误:您正在调试 X.dll 的发布版本

100

背景

我有一个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中使用正常的“启动调试”命令启动此应用程序时,它会启动,但也会产生以下警告:

You are debugging a Release build of NPoco.dll. Using Just My Code with Release builds using compiler optimizations results in a degraded debugging experience (e.g. breakpoints will not be hit).

如果我按继续调试,则所有东西似乎仍然像往常一样工作,包括断点。

这个问题最近才开始出现。

问题

  1. 有人知道上述错误是由什么引起的吗?
  2. 我是否配置有误?
28个回答

0

这个问题在我工作的某一天中间突然发生了。

尝试过清理,删除所有BIN和OBJ文件夹...但都没有起作用。

我不得不停止/启动IIS应用程序池来修复ASP.NET解决方案中的问题。


0

ProjectName.csproj.user中有一些高级设置,删除后它就工作了。


0
我一直遇到这个“错误”,即使我把配置下拉菜单改成了“调试”,但还是不起作用。最后,我点击了“生成”>“配置管理器”,将其改为“调试”,然后错误消失了。

0
  1. 关闭VS
  2. 删除项目内所有bin和obj文件夹

使用PowerShell删除所有bin和obj文件夹及其内的文件:

Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }

这对我来说没用。 - Hugh Seagraves

0

现有答案中没有提到一个常见情况:

在调试引用的dll链时,所有的dll都必须从链中的第一个dll开始引用。

例如,假设我们有以下结构:

A.dll, which references:
  B.dll, which references: 
    C.dll

在这个例子中,如果我们想要调试 C.dll,当前的引用链是不够的,我们必须让 A.dll 也引用 C.dll
A.dll, which references both:
  1. B.dll, which references: 
       C.dll
  2. C.dll

-2

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


-2

只需选择“继续调试(不再询问)”

这就是它一直以来的工作方式。他们为新手添加了这个新消息,因为新手可能不知道在使用优化(例如发布模式)时调试效果不佳。

上面提出的一些其他建议存在问题。


-2

在阅读了上面众多的解决方案后,我退出了VS并重新启动了它。是的,没错,我把它关掉然后再打开。而且,没错,它奏效了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接