FileLoadException - 无法加载文件或程序集

时间:2015-08-31 12:02:25

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

所有的一个,当我从Ninject获取一个类的实例时,我得到了一个FileLoadException。

确切的例外情况如下:

  

System.IO.FileLoadException: "无法加载文件或程序集' Quartz,Version = 2.3.3.0,Culture = neutral,PublicKeyToken = f6b8c98a402cc8a4&#39 ;或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)"

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

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

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

提前致谢

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

解决方案:在安装其他套餐时选择“最高”'如果项目中安装了最高版本,则为依赖选项。