VS 2008 breakpoint will not currently be hit. No symbols have been loaded for this document
我正在努力克服这个障碍,我非常希望有人能帮助我。
当我在类库项目中设置断点时。它显示为普通断点。当我开始调试我的解决方案时,断点会被挖空,并有一个内有感叹号的黄色三角形。当我浏览断点时显示的工具提示是:"当前不会命中断点。没有为此文档加载符号。"
此项目不是ASP.NET应用程序,它只是一个WinForms应用程序。
我接管了一个现有的WinForms应用程序,解决方案中有多个项目。我已经在调试模式下构建并运行了项目。我可以在某些项目的断点处停止,但是,我无法在其他项目中命中断点,特别是我的项目,它是类库类型。
到目前为止我所做的:
- 我删除了所有调试和发布文件夹,
- 我删除了obj文件夹,然后重新构建了解决方案。
- 我重新启动了VS2008 IDE。
- 我重新启动了计算机。
- 我检查了配置管理器中的解决方案,以确保我的类项目包含在调试构建中,并且是。
- 我已经检查了调试/模块的dll,尽管我没有试图引用dll。
此外,我还遵循了SO文章中概述的故障排除步骤:
当前不会命中断点。未加载符号
与2010年相比,努尼特和"目前不会触及断点"。没有为此文档加载符号"
当前不会命中断点。没有为此文档加载符号。
无法调试-"当前不会命中断点。"没有为此文档加载符号"
修复"当前不会命中断点。没有为此文档加载符号。"
此外,我还阅读了许多在谷歌上从msdn和其他位置找到的帖子,这些都不符合我的特定需求。
其中一些帖子是:
Visual Studio 2008"当前不会命中断点。没有为此文档加载符号"
当前不会命中断点。没有为此文档加载符号
当前不会命中断点。没有为此文档加载符号。
调试器问题"当前不会命中断点。没有为此文档加载符号
当前不会命中断点。没有为此文档加载符号。
我读过的所有文章都很有信息量,但没有一个建议的解决方案适合我的具体需求。如果需要更多信息,请告诉我。我可以提供更多的链接,作为对未起作用的内容的参考。以及我为解决这个问题所采取的其他步骤。
我发布这个后续信息是为了让每个人都了解情况。我按照@hans@的建议调用相关的项目文件。
我放置了一个dim frm作为form=new projectinquestion.forminquestion
和
现在,程序集加载在debug->windows->modules中。
新问题比我原来的问题更令人费解。我的断点看起来不错,但被跳过了。断点处没有明显错误。
这可能是一个古老的问题,但我想在找到这个问题的解决方案后回答它,因为这是关于这个主题的最完整的问题之一。
简介
我的项目是一个ASP.NET应用程序,但基本问题也将发生在WinForms上。当程序集输出中缺少dll时,会出现此问题。但是,如果您所引用的dll引用了程序集中不存在的另一个dll,则会发生相同的异常。由于操作系统加载DLL的方式,引用的DLL必须在环境路径中,而不是在输出程序集中。
项目A引用DLL D。dll d引用dll x。dll d可能在输出程序集中。dll x必须在环境路径中。
The core cause to this problem is in the way the operating system loads native DLL's at >runtime. Native DLL's are loaded using the following logic which does not include the >Temporary ASP.net Files nor the applications /bin folder. This problem will also occur in >any .Net application if the Native DLL is not included in the /bin folder with the .EXE >file or if the DLL is not in the Path Environment Variable.
个人解决方案
我使用的是一个名为divaapipwrapper.dll的dll(用于c_的托管dll)。然而,我知道DeVaPiWrPAPP.DLL需要DivaAPI.dll(非托管C++)来运行。我把divaapi.dll放在所有输出路径中,但一直收到这个错误。只有在我将divaapi.dll放入环境路径(c:windowsmicrosoft.netframeworkv2.0.50727)后,它才起作用。请注意:如果您使用的是较新版本的.NET Framework,则路径可能不同!
杰瑞·奥曼的完整解决方案
请参阅以下链接:http://blogs.msdn.com/b/jorman/archive/2007/08/31/loading-c-assembles-in-asp-net.aspx
我也遇到了同样的问题,从互联网上找到了很多解决方案,但我的解决方案如下:
这是因为我的应用程序是在框架版本4.0中创建的,我试图附加版本低于2.0的进程,所以请确保您的框架版本是托管代码版本,如下所示。
我最近在附加到正在运行的进程时发生了这种情况。问题是调试选项设置为
Attach to: Native code
对于我的情况,需要:
Attach to: Managed code
我最近发现了一件事,做得很好!!!!
宿主应用程序(调用要使用的dll的应用程序)必须具有以下行:
1 | <supportedRuntime version="v4.0"/> |
在"whateverapplicationitis.exe.config"文件中,在
示例:(请参阅"…"作为文件中的任何内容,并保持原样)
1 2 3 4 | <configuration> ... <supportedRuntime version="v2.0.50727"/> </configuration"> |
ps:尝试将此版本与项目属性中设置的目标框架相匹配。我相信2.0.50727对于3.5框架是一个很好的尝试,对于4.0框架是4.0。
对我来说,它只解决了我试图在不同应用程序中调试的两个不同的DLL。
我在VS2010上有同样的问题,我通过流程步骤解决了:
试试这个,在vs 2008中,转到"工具"->"选项"->"调试"->"常规"->"未选中/禁用"需要源文件与原始版本完全匹配。
希望这有帮助…
我引用了在bin
elease文件夹中的一个dll,即使我处于调试模式。
我将dll复制到bindebug文件夹,当我运行vs时,断点被击中。
请检查工具栏上的解决方案配置程序模式(在运行按钮的右边)是否设置为"调试"而不是"发布"。
我在vb.net-forms应用程序中遇到了与vs2008相同的问题,在该应用程序中,我在另一个项目中调用了加载在同一个项目组中的dll。我发现了这个简单的解决方案:我以"加载事件"的形式加载了一个实例将pmg调暗为新pmgexport.pmgexportneu。
检查您是否没有更改要编译此项目的处理器。我有过,当我把它改回来的时候,一切又恢复了。显然,处理器的改变使它"与原来的不同"
我一直都有这种情况发生,就像你说的,在加载dll之前,断点是不活动的。但这实际上并不重要,因为它必须在代码到达该点之前加载DLL。我的断点是这样开始的,但它们总是被击中。
在开始调试之前,请确保在Visual Studio中选择了
检查Visual Studio中play按钮附近的下拉列表。
请检查工具栏上的解决方案配置程序模式(在运行按钮的右边)是否设置为"调试"而不是"发布"。为我工作THX