【问题标题】:FileLoadException - Could not load file or assemblyFileLoadException - 无法加载文件或程序集
【发布时间】:2016-10-18 15:22:10
【问题描述】:

突然之间,我在从 Ninject 获取类的实例时遇到了 FileLoadException。

确切的例外情况如下:

System.IO.FileLoadException: “无法加载文件或程序集 'Quartz, Version=2.3.3.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)"

阅读错误消息时,似乎很清楚它尝试加载版本为 2.3.3.0 的 Quartz 程序集,但指定的版本是另一个版本……但我不明白为什么它甚至加载版本 2.3.3.0 .

我在整个解决方案(包括 .csproj)中搜索了 Quartz 参考资料,每个参考资料都说明 v1.0.1.2。 我在文件系统上搜索 Quartz.dlls 的路径,但只能找到 1.0.1.2 版本的 dll,所以我不明白为什么它会尝试加载 2.3.3.0。

您知道我可以尝试解决此异常的任何步骤吗?

提前致谢

【问题讨论】:

标签: c# .net .net-assembly quartz.net fileloadexception


【解决方案1】:

检查包含 Quartz 的类库。确保平台版本一致。您可以通过右键单击项目文件并选择属性来执行此操作。然后在第一个/最顶部的选项卡中检查程序集版本。

您在该类库中拥有的任何平台版本都应与解决方案中的其他项目保持一致。

【讨论】:

    【解决方案2】:

    当您安装依赖于 Quartz 的其他一些 nuget 包(如 Quartz.Unity)时会发生这种情况。在安装其他软件包时,如果您选择“最低”选项作为依赖项,那么它将把 Quartz 2.3.3.0 设置为依赖项。但是,您的软件包中安装了 Quartz 2.4.1。所以你得到了错误。

    解决方案:如果您在项目中安装了最高版本,则在安装其他软件包时选择“最高”选项作为依赖项。

    【讨论】:

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