最近遇到了这个问题...在VS.Net 2005中调试应用程序时,断点未连接。错误表示已编译的代码与正在运行的版本不同,因此存在导致断点断开连接的不匹配。
清除所有bin文件的解决方案并重新编译没有帮助。不仅仅发生在一个盒子或人身上。
添加注意: 此解决方案位于TFS for Source Control中。如果我删除我的本地TFS存储库并从头开始从源代码控制中获取它,那么问题就会消失。我也试过卸载并重新安装Visual Studio。这也有时候有所帮助。这些事情在某些时候都表明这个问题不是直接造成的。
答案 0 :(得分:8)
也许这个建议可能会有所帮助:
我发现有时需要:
来源:The breakpoint will not currently be hit. No symbols have been loaded for this document.
答案 1 :(得分:2)
答案 2 :(得分:1)
在选项中 - >调试你可以取消选中“要求源文件与原始版本完全匹配”,这可能会有所帮助。
答案 3 :(得分:1)
构建配置是否设置为Release?
您是否有对设置了断点的外部DLL的引用?
答案 4 :(得分:1)
您是否正在创建由外部可执行文件使用的DLL项目?您使用的是.NET还是COM?
如果您使用COM Interop with .NET,当可执行文件加载DLL时,DLL版本有时会出现问题。例如,如果您的每日构建编译出一个递增的内部版本号,但您的调试DLL具有较小的内部版本号,则可执行文件将不会加载调试DLL。要解决此问题,您需要扫描注册表中的HKEY_CLASSES_ROOT \ CLSID目录以获取.NET / COM组件的GUID / CLSID。在InProc32下,删除版本号高于调试DLL的条目。
同样,以上仅适用于.NET + COM Interop DLL。
答案 5 :(得分:1)
过去我遇到过类似的问题。
通过关闭Visual Studio并在“C:\ WINDOWS \ Microsoft.NET \ Framework {framework version} \ Temporary ASP.NET Files”下删除项目的临时ASP.NET生成的程序集文件来解决它,重新打开该项目。
阅读post here和评论以解决问题。
答案 6 :(得分:0)
AviewAnew - 已经应MS技术人员的要求完成了这项工作。取消选中要求的源文件以匹配版本没有帮助。
Mike L - 配置设置为DEBUG,现在有外部DLL。使用除框架引用之外的所有本地项目。
答案 7 :(得分:0)
您确定.pdb文件与您运行的可执行文件位于同一文件夹中吗?确保两个文件的最后修改日期匹配,并且VS附加到该exe文件(而不是其他文件)。
答案 8 :(得分:0)
您是否有以任何方式接触二进制文件的帖子构建步骤?如果是这样,这可能会混淆调试器并使其看起来像您的符号与exe / dll不匹配,因为大小/时间戳不正确。
答案 9 :(得分:0)
在过去,我有时发现关闭编译器优化可以解决“缺失”断点,因为优化器已经(正确地)确定代码没有被调用,并从编译版本中删除它们。
这听起来像是一个不同的问题,但可能值得确保在调试模式下关闭优化。 [项目/属性,构建设置选项卡]
答案 10 :(得分:0)
在应用程序的任何位置,代码上都没有调试属性来阻止代码被调试,例如DebuggerHidden或DebuggerStepThrough?
答案 11 :(得分:0)
您是否可以将代码单步执行到断点行而不是运行并等待它命中?你可以直接执行代码吗?