【问题标题】:MEF: Could not load file or assembly 'Facebook'MEF:无法加载文件或程序集“Facebook”
【发布时间】:2012-01-24 13:54:55
【问题描述】:

这样做:

   var _partsCatalog = new DirectoryCatalog(directoryName);//Fully qualified path to our bin folder
   var partInfos = partsCatalog 
                .Parts
                .Select(pd => new PartDefinitionInfo(pd))
                .ToArray(); <<-- this throws

抛出异常:“无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。”将 LoaderExceptions 设置为:

{"无法加载文件或程序集 'Facebook, Version=5.4.1.0, Culture=neutral, PublicKeyToken=58cb4f2111d1e6de' 或其之一 依赖关系。系统找不到指定的文件。": "Facebook, 版本=5.4.1.0,文化=中性,PublicKeyToken=58cb4f2111d1e6de"}

当然,我的一个程序集引用了 Facebook.Web.dll ,这会导致它被复制到 bin 文件夹中,这会导致它成为目录目录的一部分,有点无意,但仍然......

但是为什么会抛出这个错误呢?

【问题讨论】:

  • 我对 facebook api 不是很熟悉,但是... Facebook.dll 也在你的 bin 文件夹中吗? Facebook.Web.dll 可能依赖于 Facebook.dll。此外,获取更多详细信息的一种方法是使用 Fusion 日志查看器。这是一篇关于如何使用它的好帖子。 hanselman.com/blog/…
  • 缺少参考。您应该首先找到导致该问题的人。我在我的项目中使用目录目录并过滤掉一些 dll。

标签: c# mef


【解决方案1】:

当然,我的一个程序集正在引用 Facebook.Web.dll

来自Getting Started 指南:“添加对 Facebook.dll 和 Facebook.Web.dll 的引用”。您需要同时引用两者。

但是为什么会抛出这个错误呢?

错误消息说明了一切:某些东西依赖于 Facebook.dll,但 .NET 运行时无法加载该 dll,因为它在 bin 文件夹中找不到它:“系统找不到指定文件"。

【讨论】:

    猜你喜欢
    • 2020-08-17
    相关资源
    最近更新 更多