Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 当前不会命中此断点,源代码与原始代码不同(即使在清理/重建之后)_Visual Studio 2010_Debugging_.net 4.0 - Fatal编程技术网

Visual studio 2010 当前不会命中此断点,源代码与原始代码不同(即使在清理/重建之后)

Visual studio 2010 当前不会命中此断点,源代码与原始代码不同(即使在清理/重建之后),visual-studio-2010,debugging,.net-4.0,Visual Studio 2010,Debugging,.net 4.0,.NET4,控制台应用程序。项目设置为“调试”模式。正在设置的断点位于主/启动项目中。在解决方案和项目级别上,我右键单击了->清理,右键单击了->重建 按照中的说明,我已确认我的“构建和运行”选项已设置为“项目过期时”和“发生构建或部署错误时”的“提示”,并且我在F5进行构建/运行时未收到提示 此外,还选择了“构建前”下的“保存所有更改”(加上我自己手动保存的更改) 我监视了应用程序的输出窗口,请参见此行: 'MyApplication.exe': (Managed (v4.0.30319))

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

按照中的说明,我已确认我的“构建和运行”选项已设置为“项目过期时”和“发生构建或部署错误时”的“提示”,并且我在F5进行构建/运行时未收到提示

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

我监视了应用程序的输出窗口,请参见此行:

 'MyApplication.exe': (Managed (v4.0.30319)): Loaded 'C:\exepath' Symbols Loaded.
我重新启动了VS2010实例。我重新启动了(其他项目的)所有打开的VS2010实例。我甚至经历了一次重启

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

这实际上是两个问题:

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


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

我自己也曾遇到过这个问题,但那是在vsto加载项上。在这种情况下,users/appdata目录下剩余的中间文件实际上是加载的,而不是我的应用


有很多可能导致此错误的原因,还有很多其他用户的评论

如果您使用的是vb,请检查您是否正在为活动解决方案配置构建项目(Build,Configuration Manager…,Build下的列被选中。同时检查项目属性,Compile选项卡,Advanced Compile Options,Generate debug info设置为Full。很抱歉,我无法告诉您这可能在C#中的什么位置


我见过的唯一一次是,解决方案中的两个项目引用同一个dll,但它们引用的源不同。例如,一个来自项目引用,另一个来自文件引用。如果“复制本地”选项为true时,可能会使用同一dll的旧版本覆盖dll。

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

我的解决方案可能有助于peo在大会上签名的人

经过过去两天的反复思考,我通过以下简单步骤解决了同样的问题:

  • 转到Visual Studio项目属性
  • 转到“签名”选项卡
  • 如果选中“仅延迟符号”选项,则取消选中该选项
  • 现在运行您的项目,它应该会工作。对我来说,它确实工作

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

    现在,很明显,如果我选择了错误的启动项目,我不希望调试能够工作——调试器将自身附加到错误的进程


    但是这个错误消息(在我的例子中)是非常误导人的。它让我觉得其他一些问题是错误的。我在这个线程中尝试了一系列解决方案(使用各种/bin和输出目录),而实际上这是一个非常简单的问题(错误的启动过程)。

    在我的例子中也是同样的问题(“当前不会命中断点。源代码与原始版本不同。”)原因是,我尝试将断点添加到声明中:

    DateTime dt;
    bool b = DateTime.TryParse(null, out dt);
    
    (第一行代码)


    因此,我假设该消息是“通用”的,可能有许多不同的原因。

    当Project>Properties>Web没有选择“Enable Edit and Continue”(启用编辑并继续)时,我遇到了问题。启用此功能后,问题得到了纠正


    请务必注意,在“工具>选项>调试>编辑并继续”下,已选择“启用编辑并继续”,但未为此项目启用该选项。

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

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

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

  • 确保web.config上的debug=“true”
  • 清理和重建所有项目

  • 删除所有项目的bin文件夹中的每个文件

  • 关闭并打开Visual Studio,重新生成,然后再次运行项目


  • 做一个“干净的解决方案”从VS Build菜单可能会对您有所帮助。

    转到您的解决方案文件夹->obj->调试->删除.dll文件并重新构建解决方案。

    当它运行时,您可以在任务管理器、进程、属性中查看它的运行位置。@Eddy c:\path\to\working\directory\bin\debugh谢谢Eddy。我完全杀死了/Debug和/release dirs。有趣的是,当我尝试重建时,我的测试项目中出现了一个构建错误。即使设置了构建顺序/依赖项,它仍然尝试在目标项目之前构建测试项目。不确定这是否相关。无论如何,我手动构建了目标项目,然后是解决方案,现在一切都很顺利。我希望如果我不明白这个构建顺序/依赖关系的奇怪之处,问题可能会继续。刚才对我有用。谢谢!构建|配置管理器建议确实适用于C。这是我的问题!我一直在尝试