【问题标题】:Method not found exception c# [closed]方法未找到异常c# [关闭]
【发布时间】:2017-06-14 20:56:16
【问题描述】:

我遇到了一个非常简单的问题,但无法理解其原因。以下是问题简介。

我将一个项目 B 的 dll 引用到项目 A 中。引用的 dll 总共有 3 个类,我可以在项目 A 中使用所有类中的方法,但一个类中的方法除外。当我尝试使用该特定类的方法时,它会将运行时异常显示为“找不到方法”。

我尝试了各种常用方法,例如使用最新版本的 dll、重建、清理解决方案。有没有人对这个问题有任何想法?

该类的结构

public static class Sample
    {

    public static bool Method1(string parameter1)
        {
        //Method's logic

        return true;
        }
}

奇怪的是,如果我在其他解决方案的其他项目中引用该 dll,它的效果很好。我怀疑我的解决方案是否有问题。

【问题讨论】:

  • 能否提供相关代码?
  • 提到的类是否可能是内部类或标记为私有?
  • @josephmbustamante 有可能,但我认为几乎不相关。
  • 该课程的邮政编码
  • 感谢@josephmbustamante,但类是公共静态类,我可以在对象浏览器中看到该类及其所有方法。如果它是私有类或内部类,它将在对象浏览器中不可见。

标签: c# exception dll methodnotfound


【解决方案1】:

当我从多个其他项目中引用共享项目时,我遇到了几次这个错误,但在不同的版本中。例如,B 引用 A v1.0.0,但另一个项目 C 引用 A v1.0.1。在这些情况下,编译器就可以了,因为所有项目都是根据它们的依赖关系构建的。但是,在运行时,事物会崩溃,因为仅加载了 A 的 v1.0.1,其中不包含在 v1.0.1 中突然消失的方法。

【讨论】:

  • 嗨,这听起来很相关,但在我的情况下怎么可能相关,因为我只有 2 个项目 A 和 B,并且我将最新版本的 B 引用到 A 中。
  • 如果您已将项目 B 添加到项目 A 的解决方案中,那么您需要确保在编译解决方案时,项目 B 的 DLL 已创建或复制到项目 A 的解决方案文件夹中。在编译时该方法将在项目 B 中找到,但如果正确版本的 DLL 在运行时不在正确的文件夹中 - 那么您将收到 Method Not Found 异常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-29
  • 1970-01-01
  • 1970-01-01
  • 2016-06-02
  • 1970-01-01
  • 1970-01-01
  • 2014-01-16
相关资源
最近更新 更多