代码之家  ›  专栏  ›  技术社区  ›  Kostas Konstantinidis

如何在VisualStudio中调试外部类库项目?

  •  108
  • Kostas Konstantinidis  · 技术社区  · 15 年前

    我还不知道如何在从项目A运行程序的同时从B高效地调试类库。是否需要在项目B上启用调试信息等功能,以便在调试时从A开始?

    6 回复  |  直到 3 年前
        1
  •  219
  •   Midas    3 年前

    尝试禁用我的代码(JMC)。

    • 工具>选项>调试

    默认情况下,调试器尝试将世界视图限制为仅包含在解决方案中的代码。有时这真的很有用,但当您想要调试解决方案中不存在的代码时(就像您的情况一样),您需要禁用JMC才能看到它。否则,代码将被视为外部代码,并且在很大程度上隐藏在您的视图之外。

    当您的代码出现问题时,请尝试以下操作。

    • 调试>视窗>模块
    • 查找您感兴趣的项目的DLL
    • 右键单击>加载符号>为其他项目选择.PDB的路径
        2
  •  16
  •   Sarath Subramanian    9 年前

    项目 A

    C:\Projects\ProjectA
    

    B

    C:\Projects\ProjectB
    

    ProjectB的dll在

    C:\Projects\ProjectB\bin\Debug\
    

    ProjectB 从…起 ProjectA ,请执行以下操作

    1. 复制 .PDB 的编译目录。
    2. 现在调试 . 当代码到达调试时需要调用dll的方法或事件等的部分时,按 F11 进入dll的代码。

    注意:请勿错过复制.PDB文件的步骤

        3
  •  12
  •   TheGateKeeper    12 年前

        4
  •  6
  •   MatrixManAtYrService    11 年前

    我运行了两个visual studio实例——一个用于外部dll,另一个用于主应用程序。
    在外部dll的项目属性中,设置以下内容:

    生成事件:

    • copy /y "$(TargetDir)$(TargetName).dll" "C:\<path-to-main> \bin\$(ConfigurationName)\$(TargetName).dll"

    • copy /y "$(TargetDir)$(TargetName).pdb" "C:\<path-to-main> \bin\$(ConfigurationName)\$(TargetName).pdb"

    • 启动外部程序: C:\<path-to-main>\bin\debug\<AppName>.exe

    • 工作目录 C:\<path-to-main>\bin\debug

        5
  •  1
  •   TripleS    13 年前

    [根据马丁·贝克特(Martin Beckett)的说法,他给了我这个答案]

    您可以调试到外部库中。

        6
  •  0
  •   Stefan Mitic    6 年前

    我遇到了一个类似的问题,因为我在项目(B)中的断点没有被击中。我的解决方案是重建项目(B),然后调试项目(A),因为DLL需要更新。

    VisualStudio应该允许您调试到外部库中。

        7
  •  0
  •   jasmin    4 年前

    -Project_A(生成Project_A.dll) -Project_B(生成Project_B.dll) 然后NuGet包对项目A的引用 实际上,应该将其复制到/bin。

    现在调试项目。当代码到达调试时需要调用dll的方法或事件等的部分时,按F11键进入dll的代码。

        8
  •  0
  •   bbsimonbb    3 年前

    一次性完成此操作的最快方法是直接在您正在编辑和启动项目a(file=>open=>file)的Visual Studio实例中打开项目B文件。您不需要将文件添加到解决方案中。只要在编辑器中打开它,就可以直接在项目B文件中创建断点。