关于vb.net:VS 2008断点目前不会被击中。

VS 2008 breakpoint will not currently be hit. No symbols have been loaded for this document

我正在努力克服这个障碍,我非常希望有人能帮助我。

enter image description here

当我在类库项目中设置断点时。它显示为普通断点。当我开始调试我的解决方案时,断点会被挖空,并有一个内有感叹号的黄色三角形。当我浏览断点时显示的工具提示是:"当前不会命中断点。没有为此文档加载符号。"

此项目不是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中。

新问题比我原来的问题更令人费解。我的断点看起来不错,但被跳过了。断点处没有明显错误。

enter image description here


这可能是一个古老的问题,但我想在找到这个问题的解决方案后回答它,因为这是关于这个主题的最完整的问题之一。

简介

我的项目是一个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的进程,所以请确保您的框架版本是托管代码版本,如下所示。

enter image description here


我最近在附加到正在运行的进程时发生了这种情况。问题是调试选项设置为

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上有同样的问题,我通过流程步骤解决了:

  • 右键单击项目
  • 选择属性
  • 选择C/C++->
  • 设置调试信息格式为program Database(/ZI)
  • 检查链接器->调试生成调试信息是否为是。

  • 试试这个,在vs 2008中,转到"工具"->"选项"->"调试"->"常规"->"未选中/禁用"需要源文件与原始版本完全匹配。


    希望这有帮助…

    我引用了在bin
    elease文件夹中的一个dll,即使我处于调试模式。

    我将dll复制到bindebug文件夹,当我运行vs时,断点被击中。


    请检查工具栏上的解决方案配置程序模式(在运行按钮的右边)是否设置为"调试"而不是"发布"。


    我在vb.net-forms应用程序中遇到了与vs2008相同的问题,在该应用程序中,我在另一个项目中调用了加载在同一个项目组中的dll。我发现了这个简单的解决方案:我以"加载事件"的形式加载了一个实例将pmg调暗为新pmgexport.pmgexportneu。


    检查您是否没有更改要编译此项目的处理器。我有过,当我把它改回来的时候,一切又恢复了。显然,处理器的改变使它"与原来的不同"


    我一直都有这种情况发生,就像你说的,在加载dll之前,断点是不活动的。但这实际上并不重要,因为它必须在代码到达该点之前加载DLL。我的断点是这样开始的,但它们总是被击中。


    在开始调试之前,请确保在Visual Studio中选择了debug mode

    检查Visual Studio中play按钮附近的下拉列表。


    请检查工具栏上的解决方案配置程序模式(在运行按钮的右边)是否设置为"调试"而不是"发布"。为我工作THX