【问题标题】:Debug dynamically loaded assembly in Visual Studio .NET在 Visual Studio .NET 中调试动态加载的程序集
【发布时间】:2009-08-18 18:54:52
【问题描述】:

我正在使用 C# 和反射从程序集中加载和调用方法。我有程序集本身的源代码。我需要做什么才能让调试器进入(而不是结束)动态加载的程序集的代码?

如果我在 ....Invoke 行上按 F11,它只会越过它..

谢谢

【问题讨论】:

    标签: c# debugging reflection


    【解决方案1】:

    您是否有与 DLL 并置的 PDB 文件,这些文件是从当前位置的源代码构建的?

    【讨论】:

    • 是的,我有用于组装的 pdb 文件 - 我会尝试将它放在运行应用程序的目录中
    【解决方案2】:

    在本地构建动态加载程序集的源代码,并确保您拥有运行引用应用程序的 PDB 文件。

    这是希望调试 ASP.NET MVC 源代码的人们的常见要求。不过有关于 GAC 的 some caveats

    另一种快速(但肮脏)的方法是将动态加载的程序集的项目临时添加到您的解决方案中。这就是史蒂夫·桑德森 (Steve Sanderson) 对debugging the ASP.NET MVC framework 的建议。我个人更喜欢 PDB 根目录。

    【讨论】:

    • 缺少调试 ASP.NET MVC 框架的链接。您有参考链接吗?
    【解决方案3】:

    我知道这是很久以前的帖子,只是想贡献一下网络案例。

    如果您正在做 Web 项目并动态加载程序集, 如果您使用 IIS 作为开发服务器, 不要忘记重启应用程序池。

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题。

      解决方案:

      1. 对解决方案中的所有项目使用相同的 Build 文件夹(右键单击每个项目 -> 属性 -> 构建 -> 输出路径(我对所有项目使用“..\bin\Debug”)。看看你配置。所有路径更改都需要为“活动(调试)”。
      2. 如果您更改了 DLL 项目中的单行,请始终创建项目版本。您的 DLL 文件必须是完全相同的版本,就像您在 Visual Studio 中的 C# 源代码一样。

      它就像一个魅力......

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-12
        • 1970-01-01
        • 2010-10-27
        相关资源
        最近更新 更多