在自定义模块中包含 Autofac.Module 中断 Orchard
Including Autofac.Module in custom module breaks Orchard
请参阅 here & here 了解我尝试这样做的原因。
我有一个正在构建的自定义模块(它是 Orchard .sln 中自己的 .csproj,正常情况下)
我有一个(相对复杂的)依赖项,我希望将其注入到 Orchard 中。
目前,如果我构建并 运行 代码,它会非常高兴,直到它达到我的依赖性,此时它为 null-refs(正如我所期望的那样)。我可以访问管理站点和任何不引用依赖项的页面。
我将对 Autofac 的引用添加到我的项目中。 -> 一切正常。
我添加以下内容class:
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 收到整个 Orchard 站点的 "The resource cannot be found." 404s - 包括管理站点和内容页面,它们没有达到依赖关系。
求助!?
呸!这是一个版本控制问题。
在附加调试器的情况下启动站点,并中断所有异常显示如下:
{"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 的捆绑副本重新添加使问题消失。
请参阅 here & here 了解我尝试这样做的原因。
我有一个正在构建的自定义模块(它是 Orchard .sln 中自己的 .csproj,正常情况下)
我有一个(相对复杂的)依赖项,我希望将其注入到 Orchard 中。 目前,如果我构建并 运行 代码,它会非常高兴,直到它达到我的依赖性,此时它为 null-refs(正如我所期望的那样)。我可以访问管理站点和任何不引用依赖项的页面。
我将对 Autofac 的引用添加到我的项目中。 -> 一切正常。
我添加以下内容class:
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 收到整个 Orchard 站点的 "The resource cannot be found." 404s - 包括管理站点和内容页面,它们没有达到依赖关系。
求助!?
呸!这是一个版本控制问题。
在附加调试器的情况下启动站点,并中断所有异常显示如下:
{"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 的捆绑副本重新添加使问题消失。