以下模块是使用优化或未启用调试信息构建的。

142

在调试我的VS 2008 Web项目时,我无法摆脱这个问题。 我已经检查了相关的非Web项目是否处于调试模式,并且它处于活动状态(Debug)。在Windows中删除了.NET 2.0临时文件夹中的所有项目。不确定还需要做什么。


我重置了Visual Studio的设置,然后解决了问题。 - Hamed Hajiloo
34个回答

188

尝试在“工具/选项/调试/选项”中禁用“启用我的代码”,即可解决问题。


我做了那个,它起作用了。我能够使用断点并逐步执行代码。我不明白,为什么它会起作用?(我正在使用VS2010调试被Win服务引用的托管C++模块) - tzup
5
调试时它能够起作用,但可能会引起一些不必要的副作用: http://blogs.devsource.com/devlife/content/net_general/vs_debugging_-_why_doesnt_vs_break_on_exceptions.html - user276648
2
在VS2010中,此复选框位于“调试”>“选项和设置”,然后在“调试”>“常规”下。 - Cookie
这是由于重新构建选项而起作用的吗?怎么回事?我解决了这个问题,但为什么? - Quantum
对我没用。在我的情况下,这样做会使错误消息消失,但是我会得到臭名昭著的错误断点当前无法命中。此文档尚未加载任何符号 - Vivian River

86

我遇到了相同的问题,后来发现是没有在构建时输出调试信息。如果您右键单击项目并转到“属性”,然后选择“生成”选项卡,在页面底部有一个“高级...”按钮,将显示您的输出调试信息设置。将其设置为“完整”即可消除错误。

输入图像描述


1
这是正确的答案。当您想在开发模式下本地调试应用程序时,应输出“完整”的调试信息。您应该这样做,而不是选择“启用仅我的代码”答案,因为该答案可能会产生意想不到的副作用(如上所述)。 - Tod Thomson
1
@Tod Thomson,我不确定为什么您认为这是正确的答案,因为我在调试Web应用程序并尝试输入类库时刚刚看到了此消息,非常类似于问题中描述的配置。我的_Debug Info_设置为_full_,我没有理由相信它曾经有所不同。 - R. Schreurs
1
@R.Schreurs 我尝试了这页上的所有其他方法,唯一有效的是这个答案。如果对你不起作用,可以尝试其他方法或者提供你自己的答案。 - Tod Thomson
这是一个微软的错误。不要说“应该”。除非你是在说“错误应该消失,但这是微软,所以你应该重新考虑你的人生”。 - user1566694

24

我遇到了这个问题,并且很快发现其他贴出的答案不适用于我。

disable

我是这个项目的所有者,我知道它是使用调试信息构建的,而且没有进行优化。此外,我从不希望选择禁用警告作为我的第一选择。隐藏/忽略此警告可能会在未来的调试会话中成为问题。

由于这只是在我签署程序集后才开始出现,这启示了我快速解决问题的方法:暂时删除我的DLL(和消费EXE)的强名称。问题解决了!

更好的长期解决方案可以采取添加后期构建操作的形式,以更新GAC,使其具有已签名DLL的最新版本。

但现在,我很高兴结束这个分心,继续处理带我来到这个调试会话的问题。


4
我曾经遇到和你类似的情况,但我选择了简单的方法... 我卸载了放置这个 DLL 到 GAC 中的程序,因为那只是我正在调试的旧版本。 - SeeMoreGain
2
此外,建议修复问题的根源,而不仅仅像其他人建议的那样启用解决方法,例如取消选中“仅启用我的代码”。 - SeeMoreGain

17

问题已解决。删除了所有相关的dll文件(所有项目中的)。


1
我关闭了所有引用项目和我的活动解决方案的VS/VWD会话。然后,我删除了问题dll及其伴随的pdb的每个实例。接下来,我删除了.NET框架结构中临时调试网站位置下的所有内容(对于此项目,它是C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files[myWebsite])。这在早期版本中给了我一个“文件正在使用”的错误,直到我关闭了VWD。然后,我重新打开了项目并修复了项目代码中的所有未解决的错误和警告。只有这样,错误才消失了。 - B H

14

对我来说,使用VS2012执行"清理和重建"操作解决了问题。 "属性" - > "生成" - > 未选中"优化代码"。 "属性" - > "生成" - > "高级" - > 调试信息:完整。


我们需要更改设置吗? - kbvishnu
当我调试 Visual Studio 2010 插件时,这对我有效。之前是设置为“无”。 - Sabuncu
对我没用,但是删除 bin 和 obj 文件夹后,再清理和重建解决方案就可以了 :) - QMaster

10

7

我猜测 VS 2008 没有正确地重新构建 dll。

1)删除所有 dll 的出现。

2)重新构建解决方案。

这样应该就可以解决问题了。


我删除了我的Web应用程序的bin目录,然后进行了重建。这样就解决了! - Captain Sensible

6
我也遇到了这个问题,不知道为什么它已经发生了3或4次;我认为这一定是Visual Studio 2005的一个bug /故障(或者至少是我的安装)。
每次都可以解决此问题:
  1. 右键单击我的解决方案,然后单击“属性”。
  2. 打开“配置管理器”。
  3. 在下拉菜单中选择“调试”(如果尚未选择)。
  4. 取消选中“生成”,然后重新选中。
  5. 重新构建解决方案。

6

如果其他方法都不起作用,请尝试在项目属性中重命名程序集名称。这个方法解决了我的问题。


在花费数小时并搜遍互联网尝试所有我找到的方法后,这个方法奏效了。可能是有缓存的原因吗? - Chris R

6

检查您的构建配置选项。确保关闭优化并定义DEBUG常量。


选择了“构建”,同时关闭了优化。 - Anonymous

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