asp.net - Ninject 程序集与引用的程序集不匹配

标签 asp.net ninject nuget project-reference assembly-references

设置:

  • ASP.NET MVC3
  • Ninject v2.2.1.4
  • Ninject v3.0.0.15
  • Ninject.MVC3 v3.0.0.6
  • Ninject.Web.Common v3.0.0.7

使用 NuGet,我的 UnitTest 项目引用了 Ninject v2.2.1.4

我的 Web 项目引用了 Ninject v3.0.0.15、Ninject.MVC3 和 Ninject.Web.Common

问题:

在我的 Web 项目的 bin 文件夹中打开 win 资源管理器后,我构建了我的解决方案,并且可以看到 Ninject v2.2.1.4 被复制到我的 Web 项目的 bin 目录中。然后被 Ninject v3.0.0.15 取代。

当我按 F5 进行调试时,Ninject.dll v3.0.0.15 被 Ninject v2.2.1.4 替换,导致以下错误:

无法加载文件或程序集“Ninject,Version=3.0.0.0,Culture=neutral,PublicKeyToken=c7192dc5380945e7”或其依赖项之一。找到的程序集的 list 定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)

什么给出了?

最佳答案

一些想法:

  1. 只有在调试版本中,您才间接引用了 v2 Ninject 版本。举个例子,我猜你什么时候做 您的调试版本您在发布版本时构建测试项目 不会构建您的测试项目。
  2. 当您构建时,您是否注意到当 v2 DLL 被放入 bin 时正在构建什么项目?那么你就会 能够找出哪个项目正在引用 v2 构建并 能够缩小您的搜索范围(即,如果它不是测试项目,答案会变得更加明显)。
  3. 在不同项目中引用多个版本绝不是一个好主意。
  4. 您检查过 Web.config 和 App.config 引用所指向的内容吗?

关于asp.net - Ninject 程序集与引用的程序集不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10637799/

相关文章:

c# - Web API 调用中的空引用

powershell - Nuget复制文件并将其添加到解决方案级别

c# - 无法在 VS2012 上安装 HtmlAgilityPack

asp.net - 如何在没有任何样式属性的情况下渲染 gridview ?

asp.net - 使用复选框列表切换 div 可见性

asp.net - 我如何摆脱未声明的 __o ?

asp.net-mvc - Entity Framework 4.1 Code First - 在存储库之间共享 dbContext 的正确方法?

.net - ninject 被视为容器吗?

teamcity - 如何从项目文件创建 NuGet 包以使其包含必要的程序集?

jquery - 如何在不点击播放按钮的情况下自动播放 YouTube 视频