包括Autofac.Module在自定义模块中打破Orchard

时间:2015-02-24 16:01:58

标签: http-status-code-404 orchardcms autofac

here& here我为什么要这样做。

我正在构建一个自定义模块(在Orchard .sln中它是自己的.csproj,正常情况下)

我有一个(相对复杂的)依赖项,我想注入Orchard。 目前,如果我构建并运行代码,它将非常高兴,直到它达到我的依赖关系,此时它为null-refs(正如我所期望的那样)。我可以访问管理站点和任何不引用依赖项的页面。

我在项目中添加了对Autofac的引用。 - >一切都很好。

我添加以下类:

using System;
using Autofac;

namespace MyCustom.Module.Namespace
{
  public class LoaderModule
  {}
}

一切都还好 - 我重建并仍然得到预期的行为。 然后我按照其他地方的指示从LoaderModule推导Autofac.Module

using System;
using Autofac;

namespace MyCustom.Module.Namespace
{
  public class LoaderModule : Autofac.Module
  {}
}

突然间我得到了“资源无法找到”。来自IIS的404s用于整个Orchard站点 - 包括管理站点和内容页面,这些页面没有达到依赖性。

帮助!?

1 个答案:

答案 0 :(得分:0)

呸!这是版本问题。

启动附加调试器的站点,并打破所有异常,显示如下内容:

{"Could not load file or assembly 'Autofac, Version=3.3.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)":"Autofac, Version=3.3.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da"}

我从nuget添加了Autofac,但Orchard本身使用的是不同的捆绑版本。 删除我对autofac的nuget引用并通过查找Autofac.dll的捆绑副本重新添加使问题消失。