【问题标题】:Why is my project still looking for Inject version 3.0.0.0为什么我的项目仍在寻找 Inject 版本 3.0.0.0
【发布时间】:2019-05-04 06:01:36
【问题描述】:

NinjectWebCommon.cs我有这个:

private static IKernel CreateKernel()
{
    var kernel = new StandardKernel();
    try
    {
        kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
        kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();

        RegisterServices(kernel);
        return kernel;
    }
    catch
    {
        kernel.Dispose();
        throw;
    }
}

当我运行我的 ASP.NET MVC 应用程序时,它会在该方法上崩溃:

An exception of type 'System.IO.FileLoadException' occurred in Ninject.dll but was not handled in user code

Additional information: Could not load file or assembly 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

我已经从引用中删除了我的 Ninject DLL 并从 NuGet 管理器中再次添加它们,现在我的包文件看起来像这样,但仍然出现该错误:

  <package id="Ninject" version="3.2.2.0" targetFramework="net451" />
  <package id="Ninject.MVC3" version="3.2.1.0" targetFramework="net451" />
  <package id="Ninject.Web.Common" version="3.2.3.0" targetFramework="net451" />
  <package id="Ninject.Web.Common.WebHost" version="3.2.3.0" targetFramework="net451" />

我还应该做什么?

【问题讨论】:

  • 您是否尝试过在您的项目中搜索整个项目以查找以下System.Web.Mvc, Version=3.0.0.0 上的 FindAll 您是否在发布文件夹与调试文件夹中有预期的代码..?反之亦然
  • 是的,我已经搜索了所有文件...没有找到 3.0.0.0
  • 您确定您拥有正确或更新的 .dll。您是否尝试过删除引用并读取新的引用。
  • 您应该检查像herehere 所述部署的所有程序集,并查看哪个程序集引用了MVC 3。
  • 你也可以试试RefExplorer是否有帮助。

标签: c# ninject


【解决方案1】:

如果您想轻松弄清楚哪个项目使用哪个版本,一个解决方案是转到 packages 目录并查找 Ninject-[version] 目录并将其删除、重命名或移动到其他位置。当您返回 Visual Studio 时,您应该会看到现在哪个项目抱怨没有拥有它。

【讨论】:

    【解决方案2】:

    从管理 NuGet 包更新您的 asp.net MVC 程序集,以便在库包管理器中找到解决方案。

    我刚遇到同样的问题,这解决了。这可能是因为 MVC 版本和 Ninject 程序集版本之间的冲突。

    【讨论】:

      【解决方案3】:

      我也遇到过这个问题,结果是当我在 Visual Studio 中执行清理或重建时,实际上并没有清除 bin 目录的全部内容,而是留下了一些程序集。由于构建没有替换这些旧程序集,因此它会在运行时引发版本不匹配的错误。我的解决方案是导航到该文件夹​​并手动清除 bin 文件夹中的所有文件。手动删除并重建解决方案后,我的运行时错误消失了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-03-13
        • 1970-01-01
        • 2017-03-04
        • 1970-01-01
        • 2012-04-30
        • 2016-08-22
        • 2017-01-12
        相关资源
        最近更新 更多