无法加载文件或程序集Ninject版本4.0.0.0

时间:2017-10-04 06:08:52

标签: c# version-control nuget ninject .net-assembly

汇编引用存在问题,更新nuget软件包时发生了猜测。

我从一个不依赖于大多数依赖项(拓扑排序)的项目开始,重新安装所有nuget包并增加nuspec文件中的版本以及Ninject引用的所有packages.config文件。 2.0

<package id="Ninject" version="3.2.2.0" targetFramework="net462" />
<package id="Ninject.Extensions.Conventions" version="3.2.0.0" targetFramework="net462" />

但不起作用。

运行单元测试时仍然出错,似乎是一个引用其他版本的Ninject

的程序集

单元测试失败:

  

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

如何获取有关此问题的更多信息(谁调用版本4.0.0.0或3.2.0.0)或解决此问题?

提前致谢。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我将项目从使用Ninject版本3.2.2.0的4.5升级到4.6.2,并且得到了相同的错误消息。

帮助我的是,我将Ninject软件包升级到了最新版本(3.3.4)和Ninject.Web.Common(3.3.2)。

警告!当我这样做时,我的NinjectWebCommon.cs文件被重新生成,并且丢失了所有依赖项注入设置,但是一旦从源代码管理中恢复了它,一切都很好。

答案 1 :(得分:0)

我有同样的问题。我试图编辑我的项目文件以检查我的依赖版本,但是没关系。

我也尝试编辑我的web.config文件,因为存在依赖项版本:

enter image description here

最后,这些是我所做的:

  • 在Nuget软件包管理器中卸载所有Ninject软件包。
  • 删除web.config文件上的所有Ninject依赖于装配的节点。
  • 然后重新安装我之前拥有的Ninject软件包。

此后一切正常。