【问题标题】:Having trouble debugging class library plugin调试类库插件时遇到问题
【发布时间】:2010-06-01 19:42:16
【问题描述】:

我有一个 Windows 窗体应用程序,我试图在其中使用插件(类库)。在代码中,我让它从 dll 文件加载程序集,这意味着我无法调试。此外,我还没有找到如何编译库,所以我不得不使用调试的 dll 版本进行测试。我遇到了一个错误,在该错误中,我创建了一个新对象并通过接口将该数据发送到插件,以尝试从插件中检索空白的平板组框。但是,我没有将参数作为新对象读取,而是设法单步执行了一次代码(不要问我怎么做,我不知道,我也无法重复它),看起来代码正在注册参数为“无”,因此我在主程序中收到空引用错误。

有没有更好的方法来调试这个机制并找出问题所在?关于问题可能是什么的任何想法。当我阅读时,这似乎有点模糊,我不知道如何描述它,但如果有人愿意查看正在发生的事情并且我没有让自己被理解,我愿意主持一次连接会议很好。

【问题讨论】:

    标签: vb.net plugins interface nullreferenceexception class-library


    【解决方案1】:

    我不确定我是否完全按照您的操作,但我通常发现调试类库的最佳方法是在类库的解决方案中添加一个新项目,无论是 WinForms 还是一个控制台,然后我将这个新项目设置为启动项目并添加对类库项目的引用(通过“添加引用”对话框中的“项目”选项卡)。

    然后您就可以从其他项目调用类库中的方法,并且可以在任何地方放置断点以轻松查看实际情况。

    【讨论】:

    • 我不确定我是否完全理解您的意思。添加对插件的引用将允许我从存根调用函数,但它不允许我创建插件的实例......据我所知。类库作为插件实现,并且没有尽我所知传递正确的信息......我面临的部分挑战是我真的不知道如何更好地解释正在发生的事情,这就是为什么如果这个不清楚我想知道是否可以安排一次桌面共享会议?
    • 我不确定插件是否是 .Net 的定义术语,我只是假设您只是指一个 dll,但我现在假设您的意思是您动态加载 dll 并且可能通过接口等访问它。无论哪种方式,我都认为您可以执行 F5 来进入 dll 代码,但是自从我进行任何动态加载以来已经有一段时间了,所以我可能会忘记一些东西。抱歉,我没有时间。
    • 嗯,你对我现在所做的事情是正确的。但它似乎并没有让我单步执行代码。
    • 我最近在 stackoverflow 上看到了一些关于此的问题,但我找不到。我建议尝试搜索它,否则创建一个新问题,您专门询问为什么您无法进入类库。届时您可能会收到更多回复。
    • 我确实搜索了它并没有找到答案,但我最终找到了问题。
    【解决方案2】:

    好的,所以问题是任何时候编辑类库都必须编译(我知道调试的唯一方法是,我找不到编译按钮,发布按钮不起作用和构建似乎没有制作一个dll)。但无论如何,您必须编译、传输文件,以便您阅读最新的文件。如果您在运行时编辑代码,它不会更新正在使用的 dll……这是我的问题。

    【讨论】:

    • 啊,是的,我以前在做 C++ COM dll 时遇到过这个问题,也使用接口等。不过,构建应该创建 DLL,Ctrl + Shift + B
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 2023-03-25
    • 2020-08-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    相关资源
    最近更新 更多