在一个项目中,有几个引用了Ninject库并且它们有各自的版本。单元测试失败了,错误如下:
Message: System.IO.FileLoadException : 无法加载文件或程序集“Ninject, Version=4.0.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7”或其某个依赖项。所定位的程序集清单定义与程序集引用不匹配。(HRESULT 异常从 0x80131040 开始) ---- System.IO.FileLoadException : 无法加载文件或程序集“Ninject, Version=3.2.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7”或其某个依赖项。所定位的程序集清单定义与程序集引用不匹配。(HRESULT 异常从 0x80131040 开始)
1- csproj 文件
Message: System.IO.FileLoadException : 无法加载文件或程序集“Ninject, Version=4.0.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7”或其某个依赖项。所定位的程序集清单定义与程序集引用不匹配。(HRESULT 异常从 0x80131040 开始) ---- System.IO.FileLoadException : 无法加载文件或程序集“Ninject, Version=3.2.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7”或其某个依赖项。所定位的程序集清单定义与程序集引用不匹配。(HRESULT 异常从 0x80131040 开始)
1- csproj 文件
<Reference Include="Ninject, Version=3.2.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL">
<HintPath>..\packages\Ninject.3.2.2.0\lib\net45-full\Ninject.dll</HintPath>
</Reference>
2- packages.config
<package id="Ninject" version="3.2.2.0" targetFramework="net462" />
3- app.config
<dependentAssembly>
<assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
4- 引用文件夹 -> 展开 -> 在Ninject上右键单击 -> 属性
Version: 3.2.0.0
看起来我的项目中某处引用了版本4.0.0.0和3.2.0.0,我只想引用版本3.2.2.0。
如何做到这一点?
这些引用之间有什么区别?