此断点目前不会被命中,源代码与原始代码不同(即使在清理/重建后)

时间:2011-08-09 19:05:21

标签: visual-studio-2010 debugging .net-4.0

.NET 4,控制台应用程序。该项目设置为“调试”模式。正在设置的断点位于主/启动项目中。我右键单击了 - >清洁,右键单击 - >在解决方案和项目级别上重建。

按照this SO question中的说明,我已确认我的“构建和运行”选项设置为“当项目已过期时”和“发生构建或部署错误时”的“提示”,当我F5构建/运行时,我没有得到提示。

此外,还选择了“在构建之前”下的“保存所有更改”(另外我自己手动保存)。

我监视了应用程序的输出窗口,请看这一行:

 'MyApplication.exe': (Managed (v4.0.30319)): Loaded 'C:\exepath' Symbols Loaded.

我重新启动了VS2010实例。我重新启动所有打开VS2010实例(其他项目)。我甚至经历过重启。

但是,我在启动项目中设置的断点是一个空心红色圆圈,注意到“此断点当前不会被命中,源代码与原始版本不同”,实际上是从未打过。

所以,这实际上是两个问题:

1)如何解决此问题,以便正确断点

2)当我看到这个时,这是否意味着我的代码是从旧版本执行的?

12 个答案:

答案 0 :(得分:9)

我曾经遇到过这个问题,但那是在vsto插件上。在这种情况下,在实际加载的users / appdata目录下留下了中间文件,而不是我的应用程序。

this blog article有一大堆可能导致此错误的原因,然后在其他用户的评论中有更多内容

答案 1 :(得分:3)

如果您的解决方案包含多个项目,并且在VS2010和VS2012中选择了错误的项目作为启动项目,也会发生这种情况。

现在,显然,如果我选择了错误的启动项目,我不希望调试工作 - 调试器将自己附加到错误的进程!

但是这个错误信息(在我的情况下)非常具有误导性。这让我觉得别的错了。我在这个线程中尝试了一堆解决方案(nuking各种/ bin和输出目录),实际上它非常简单(启动过程错误)。

答案 2 :(得分:1)

如果您使用的是vb,请检查您是否正在为活动解决方案配置构建项目(Build,Configuration Manager ...,Build下的Column。还要检查项目属性,Compile选项卡,Advanced Compile Options和生成调试信息设置为完全。抱歉,我无法告诉您C#中的位置。

我唯一看到过这个问题的时候,解决方案中的两个项目引用了相同的dll,但它们是从不同的来源引用的。一个来自项目引用,另一个来自文件引用。如果"复制本地"选项为true,可能会使用相同dll的旧版本覆盖dll。

答案 3 :(得分:1)

我的解决方案可能会帮助已签署大会的人。

在过去两天经过多次努力之后,我通过以下简单步骤解决了同样的问题:

  1. 转到Visual Studio项目属性。
  2. 转到“签名”标签。
  3. 如果选中,则取消选中“仅限延迟签名”选项。
  4. 现在运行你的项目,它应该工作。对我来说它确实有效。

答案 4 :(得分:1)

在我的情况下是同样的问题(“断点当前不会被命中。源代码与原始版本不同。”)由事实引起,我尝试将断点添加到声明中:

DateTime dt;
bool b = DateTime.TryParse(null, out dt);

(第一行代码)

因此,我认为该消息是“普遍的”,可能有许多不同的原因。

答案 5 :(得分:0)

如果自上次编译后系统时钟已更改,则会发生这种情况。您的PDB文件的日期与您尝试调试的日期不同。删除项目中的PDB文件并重新编译。

答案 6 :(得分:0)

我在Project>时遇到了问题属性> Web未选中“启用编辑并继续”。启用此功能后,问题已得到纠正。

重要的是要注意工具>选项>调试>编辑并继续“启用编辑并继续”已选中,但该项目未启用。

答案 7 :(得分:0)

只需转到工具/导入和导出设置即可 选择重置所有设置,然后单击下一步 不,只需重置设置,覆盖我当前的设置,然后单击下一步 选择您当前的语言,例如C#。然后单击“完成”

答案 8 :(得分:0)

如果您打开了多个解决方案,请尝试关闭所有Visual Studio实例并仅重新启动所需的实例。 根据我的经验,这种情况发生在两个几乎完全相同的代码分支在不同情况下打开时。

答案 9 :(得分:0)

我必须通过所有这些步骤来解决我的计算机上的问题。

  1. 确保debug =" true"在你的web.config
    1. 清理并重建所有项目

    2. 删除所有项目的bin文件夹中的所有文件

    3. 关闭并打开Visual Studio,重建并再次运行该项目。

答案 10 :(得分:0)

从VS Build Menu执行“干净的解决方案”可能对您有所帮助。

答案 11 :(得分:0)

转到解决方案文件夹-> obj->调试->删除.dll文件,然后重新构建解决方案。