autofac / Autofac

An addictive .NET IoC container
https://autofac.org
MIT License
4.47k stars 836 forks source link

Compilation of autofac: compile documentation fails #610

Closed MircoBabin closed 9 years ago

MircoBabin commented 9 years ago

I'm compiling autofac using the following steps:

  1. Start a Developer Command Prompt for VS2013
  2. cd /D c:\tfs\AgpWebEngine\Dependencies\Autofac-master (contains extracted zip file from github)
  3. Modify one test source, see issue #597
  4. set EnableNuGetPackageRestore=true (Nuget Package Restore is default disabled on my * machine)
  5. go.cmd "/p:Production=true" "/p:Platform=Any CPU" > go.txt 2>&1

Inspecting go.txt (the output of go.cmd), I found the following error when building the documentation:

---SNIP---

  Cleaning NuGet staging...
  De map c:\TFS\AgpWebEngine\Dependencies\Autofac-master\build_output\package\nuspec-staging wordt verwijderd.
  Packaging complete.
Document:

  set DXROOT=c:\TFS\AgpWebEngine\Dependencies\Autofac-master\lib\Sandcastle
  MSBuild c:\TFS\AgpWebEngine\Dependencies\Autofac-master\Build\Documentation.proj /p:DocumentationVersion="3.0.0.0" /p:BuildDirectory="c:\TFS\AgpWebEngine\Dependencies\Autofac-master\build_output"

  Microsoft (R) Build Engine version 12.0.31101.0
  [Microsoft .NET Framework, version 4.0.30319.18444]
  Copyright (C) Microsoft Corporation. All rights reserved.

  Build started 8-1-2015 9:39:09.
  Project "c:\TFS\AgpWebEngine\Dependencies\Autofac-master\Build\Documentation.proj" on node 1 (default targets).
  Project "c:\TFS\AgpWebEngine\Dependencies\Autofac-master\Build\Documentation.proj" (1) is building "c:\TFS\AgpWebEngine\Dependencies\Autofac-master\Build\Documentation.shfbproj" (2) on node 1 (default targets).
  CoreBuildHelp:
    Building c:\TFS\AgpWebEngine\Dependencies\Autofac-master\Build\Documentation.shfbproj
    Initializing
    ValidatingDocumentationSources
    GenerateSharedContent
    GenerateApiFilter
    GenerateReflectionInfo
SHFB : error BE0043: Unexpected error detected in last build step.  See output above for details. [c:\TFS\AgpWebEngine\Dependencies\Autofac-master\Build\Documentation.shfbproj] [c:\TFS\AgpWebEngine\Dependencies\Autofac-master\default.proj]
    Failed
    Build details can be found in c:\TFS\AgpWebEngine\Dependencies\Autofac-master\build_output\log\DocumentationBuild.log
  Done Building Project "c:\TFS\AgpWebEngine\Dependencies\Autofac-master\Build\Documentation.shfbproj" (default targets) -- FAILED.
  Done Building Project "c:\TFS\AgpWebEngine\Dependencies\Autofac-master\Build\Documentation.proj" (default targets) -- FAILED.

  Build FAILED.

--- SNIP ---  

Inspecting the file c:\TFS\AgpWebEngine\Dependencies\Autofac-master\build_output\log\DocumentationBuild.log, I find the next error:

<buildStep step="GenerateReflectionInfo">
Generating reflection information...
<plugIn name="Wildcard Assembly References" behavior="Before" priority="1000">
Adding wildcard references
    Added reference Autofac (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Autofac.3.3.1\lib\net40\Autofac.dll)
    Added reference Autofac.Extras.Attributed (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Autofac.Extras.Attributed.3.2.1\lib\net40\Autofac.Extras.Attributed.dll)
    Added reference Autofac.Extras.CommonServiceLocator (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Autofac.Extras.CommonServiceLocator.3.2.0\lib\net40\Autofac.Extras.CommonServiceLocator.dll)
    Added reference Autofac.Extras.DomainServices (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Autofac.Extras.DomainServices.3.0.1\lib\net40\Autofac.Extras.DomainServices.dll)
    Added reference Autofac.Extras.EnterpriseLibraryConfigurator (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Autofac.Extras.EnterpriseLibraryConfigurator.3.0.1\lib\net40\Autofac.Extras.EnterpriseLibraryConfigurator.dll)
    Added reference Autofac.Extras.Multitenant (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Autofac.Extras.Multitenant.3.1.1\lib\net40\Autofac.Extras.Multitenant.dll)
    Added reference Autofac.Extras.Multitenant.Wcf (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Autofac.Extras.Multitenant.Wcf.3.1.1\lib\net40\Autofac.Extras.Multitenant.Wcf.dll)
    Added reference Autofac.Integration.Mef (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Autofac.Mef.3.0.3\lib\net40\Autofac.Integration.Mef.dll)
    Added reference Autofac.Integration.Mvc (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Autofac.Mvc5.3.3.0\lib\net45\Autofac.Integration.Mvc.dll)
    Added reference Autofac.Integration.Owin (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Autofac.Owin.3.1.0\lib\net45\Autofac.Integration.Owin.dll)
    Added reference Autofac.Integration.Wcf (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Autofac.Wcf.3.0.1\lib\net40\Autofac.Integration.Wcf.dll)
    Added reference Autofac.Integration.Web (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Autofac.Web.3.2.0\lib\net40\Autofac.Integration.Web.dll)
    Added reference Autofac.Integration.WebApi (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Autofac.WebApi2.3.4.0\lib\net45\Autofac.Integration.WebApi.dll)
    Added reference Autofac.Integration.WebApi.Owin (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Autofac.WebApi2.Owin.3.2.0\lib\net45\Autofac.Integration.WebApi.Owin.dll)
    Added reference Castle.Core (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Castle.Core.3.2.2\lib\net35\Castle.Core.dll)
    Added reference Microsoft.Practices.ServiceLocation (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\CommonServiceLocator.1.2\lib\portable-windows8+net40+sl5+windowsphone8\Microsoft.Practices.ServiceLocation.dll)
    Added reference Microsoft.Practices.EnterpriseLibrary.Common (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\EnterpriseLibrary.Common.5.0.505.0\lib\NET35\Microsoft.Practices.EnterpriseLibrary.Common.dll)
    Added reference Microsoft.Practices.EnterpriseLibrary.Common.Silverlight (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\EnterpriseLibrary.Common.5.0.505.0\lib\SL40\Microsoft.Practices.EnterpriseLibrary.Common.Silverlight.dll)
    Added reference Microsoft.Practices.EnterpriseLibrary.ExceptionHandling (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\EnterpriseLibrary.ExceptionHandling.5.0.505.0\lib\NET35\Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll)
    Added reference Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Silverlight (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\EnterpriseLibrary.ExceptionHandling.5.0.505.0\lib\SL40\Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Silverlight.dll)
    Added reference FakeItEasy (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\FakeItEasy.1.18.0\lib\net35\FakeItEasy.dll)
    Added reference Glimpse.Core (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Glimpse.1.8.6\lib\net35\Glimpse.Core.dll)
    Added reference Glimpse.AspNet (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Glimpse.AspNet.1.9.1\lib\net35\Glimpse.AspNet.dll)
    Added reference Glimpse.Mvc5 (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Glimpse.Mvc5.1.5.3\lib\net45\Glimpse.Mvc5.dll)
    Added reference Iesi.Collections (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Iesi.Collections.3.2.0.4000\lib\Net35\Iesi.Collections.dll)
    Added reference System.Web.Mvc (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.AspNet.Mvc.5.1.0\lib\net45\System.Web.Mvc.dll)
    Added reference System.Web.Razor (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.AspNet.Razor.3.1.0\lib\net45\System.Web.Razor.dll)
    Added reference Microsoft.AspNet.SignalR.Core (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.AspNet.SignalR.Core.2.1.1\lib\net45\Microsoft.AspNet.SignalR.Core.dll)
    Added reference System.Net.Http.Formatting (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.AspNet.WebApi.Client.5.2.0\lib\net45\System.Net.Http.Formatting.dll)
    Added reference System.Web.Http (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.AspNet.WebApi.Core.5.2.0\lib\net45\System.Web.Http.dll)
    Added reference System.Web.Http.Owin (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.AspNet.WebApi.Owin.5.2.0\lib\net45\System.Web.Http.Owin.dll)
    Added reference System.Web.Helpers (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.AspNet.WebPages.3.1.0\lib\net45\System.Web.Helpers.dll)
    Added reference System.Web.WebPages.Deployment (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.AspNet.WebPages.3.1.0\lib\net45\System.Web.WebPages.Deployment.dll)
    Added reference System.Web.WebPages (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.AspNet.WebPages.3.1.0\lib\net45\System.Web.WebPages.dll)
    Added reference System.Web.WebPages.Razor (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.AspNet.WebPages.3.1.0\lib\net45\System.Web.WebPages.Razor.dll)
    Added reference Microsoft.Bcl.Build.Tasks (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.Bcl.Build.1.0.7\tools\Microsoft.Bcl.Build.Tasks.dll)
    Added reference Microsoft.Owin (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.Owin.3.0.0\lib\net45\Microsoft.Owin.dll)
    Added reference Microsoft.Owin.Host.HttpListener (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.Owin.Host.HttpListener.3.0.0\lib\net45\Microsoft.Owin.Host.HttpListener.dll)
    Added reference Microsoft.Owin.Hosting (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.Owin.Hosting.3.0.0\lib\net45\Microsoft.Owin.Hosting.dll)
    Added reference Microsoft.Owin.Security (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.Owin.Security.3.0.0\lib\net45\Microsoft.Owin.Security.dll)
    Added reference Microsoft.Owin.Testing (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.Owin.Testing.3.0.0\lib\net45\Microsoft.Owin.Testing.dll)
    Added reference Microsoft.Web.Infrastructure (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll)
    Added reference Moq (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Moq.4.2.1312.1622\lib\net35\Moq.dll)
    Added reference Moq.Silverlight (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Moq.4.2.1312.1622\lib\sl4\Moq.Silverlight.dll)
    Added reference Cirrious.CrossCore (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\MvvmCross.HotTuna.CrossCore.3.2.1\lib\MonoAndroid\Cirrious.CrossCore.dll)
    Added reference Cirrious.CrossCore.Droid (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\MvvmCross.HotTuna.CrossCore.3.2.1\lib\MonoAndroid\Cirrious.CrossCore.Droid.dll)
    Added reference Cirrious.MvvmCross.Binding (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\MvvmCross.HotTuna.CrossCore.3.2.1\lib\MonoAndroid\Cirrious.MvvmCross.Binding.dll)
    Added reference Cirrious.MvvmCross.Binding.Droid (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\MvvmCross.HotTuna.CrossCore.3.2.1\lib\MonoAndroid\Cirrious.MvvmCross.Binding.Droid.dll)
    Added reference Cirrious.MvvmCross.Localization (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\MvvmCross.HotTuna.CrossCore.3.2.1\lib\MonoAndroid\Cirrious.MvvmCross.Localization.dll)
    Added reference Cirrious.CrossCore.Touch (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\MvvmCross.HotTuna.CrossCore.3.2.1\lib\MonoTouch\Cirrious.CrossCore.Touch.dll)
    Added reference Cirrious.MvvmCross.Binding.Touch (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\MvvmCross.HotTuna.CrossCore.3.2.1\lib\MonoTouch\Cirrious.MvvmCross.Binding.Touch.dll)
    Added reference Cirrious.CrossCore.Wpf (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\MvvmCross.HotTuna.CrossCore.3.2.1\lib\net45\Cirrious.CrossCore.Wpf.dll)
    Added reference Cirrious.CrossCore.WindowsStore (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\MvvmCross.HotTuna.CrossCore.3.2.1\lib\netcore45\Cirrious.CrossCore.WindowsStore.dll)
    Added reference Cirrious.CrossCore.WindowsCommon (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\MvvmCross.HotTuna.CrossCore.3.2.1\lib\portable-win81+wpa81\Cirrious.CrossCore.WindowsCommon.dll)
    Added reference Cirrious.CrossCore.WindowsPhone (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\MvvmCross.HotTuna.CrossCore.3.2.1\lib\wp8\Cirrious.CrossCore.WindowsPhone.dll)
    Added reference System.Net (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\MvvmCross.PortableSupport.3.2.1\lib\MonoAndroid\System.Net.dll)
    Added reference System.Windows (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\MvvmCross.PortableSupport.3.2.1\lib\MonoAndroid\System.Windows.dll)
    Added reference System.Xml.Serialization (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\MvvmCross.PortableSupport.3.2.1\lib\MonoAndroid\System.Xml.Serialization.dll)
    Added reference Newtonsoft.Json (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Newtonsoft.Json.5.0.8\lib\net20\Newtonsoft.Json.dll)
    Added reference NHibernate (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\NHibernate.3.3.3.4001\lib\Net35\NHibernate.dll)
    Added reference nunit.framework (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\NUnit.2.6.3\lib\nunit.framework.dll)
    Added reference pnunit.framework (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\NUnit.Runners.2.6.3\tools\pnunit.framework.dll)
    Added reference pnunit.tests (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\NUnit.Runners.2.6.3\tools\pnunit.tests.dll)
    Added reference log4net (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\NUnit.Runners.2.6.3\tools\lib\log4net.dll)
    Added reference nunit-console-runner (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\NUnit.Runners.2.6.3\tools\lib\nunit-console-runner.dll)
    Added reference nunit-gui-runner (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\NUnit.Runners.2.6.3\tools\lib\nunit-gui-runner.dll)
    Added reference nunit.core (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\NUnit.Runners.2.6.3\tools\lib\nunit.core.dll)
    Added reference nunit.core.interfaces (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\NUnit.Runners.2.6.3\tools\lib\nunit.core.interfaces.dll)
    Added reference nunit.uiexception (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\NUnit.Runners.2.6.3\tools\lib\nunit.uiexception.dll)
    Added reference nunit.uikit (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\NUnit.Runners.2.6.3\tools\lib\nunit.uikit.dll)
    Added reference nunit.util (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\NUnit.Runners.2.6.3\tools\lib\nunit.util.dll)
    Added reference Owin (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Owin.1.0\lib\net40\Owin.dll)
    Added reference Microsoft.Practices.Unity.Configuration (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Unity.2.1.505.2\lib\NET35\Microsoft.Practices.Unity.Configuration.dll)
    Added reference Microsoft.Practices.Unity (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Unity.2.1.505.2\lib\NET35\Microsoft.Practices.Unity.dll)
    Added reference Microsoft.Practices.Unity.Silverlight (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Unity.2.1.505.2\lib\SL30\Microsoft.Practices.Unity.Silverlight.dll)
    Added reference Microsoft.Practices.Unity.Interception.Configuration (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Unity.Interception.2.1.505.2\lib\NET35\Microsoft.Practices.Unity.Interception.Configuration.dll)
    Added reference Microsoft.Practices.Unity.Interception (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Unity.Interception.2.1.505.2\lib\NET35\Microsoft.Practices.Unity.Interception.dll)
    Added reference Microsoft.Practices.Unity.Interception.Silverlight (c:\TFS\AgpWebEngine\Dependencies\Autofac-master\packages\Unity.Interception.2.1.505.2\lib\SL40\Microsoft.Practices.Unity.Interception.Silverlight.dll)
</plugIn>[C:\Program Files (x86)\MSBuild\12.0\bin\MSBuild.exe]
  MRefBuilder (v2.7.2.0)
  Copyright &#169; 2006-2012, Microsoft Corporation, All Rights Reserved
  Info: Loaded 17 assemblies for reflection and 79 dependency assemblies.
MREFBUILDER : error : Unresolved assembly reference: Autofac (Autofac, Version=3.4.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da) required by Autofac.Extras.Attributed [c:\TFS\AgpWebEngine\Dependencies\Autofac-master\build_output\doc\temp\GenerateRefInfo.proj]
    Last step completed in 00:00:05.6784
</buildStep>
<buildStep step="Failed">

SHFB: Error BE0043: Unexpected error detected in last build step.  See output above for details.

</buildStep>

When I look into the c:\tfs\AgpWebengine\autofac-master\packages dir, I see the following subdirectories. (Including autofac.3.4.0). So I don't understand above error.

Autofac.3.3.1
Autofac.3.4.0
Autofac.3.5.0
Autofac.3.5.2
Autofac.Extras.Attributed.3.2.1
Autofac.Extras.CommonServiceLocator.3.2.0
Autofac.Extras.DomainServices.3.0.1
Autofac.Extras.EnterpriseLibraryConfigurator.3.0.1
Autofac.Extras.Multitenant.3.1.1
Autofac.Extras.Multitenant.Wcf.3.1.1
Autofac.Mef.3.0.3
Autofac.Mvc5.3.3.0
Autofac.Mvc5.3.3.1
Autofac.Owin.3.1.0
Autofac.Wcf.3.0.1
Autofac.Web.3.2.0
Autofac.WebApi2.3.4.0
Autofac.WebApi2.Owin.3.2.0
Castle.Core.3.2.2
CommonServiceLocator.1.2
EnterpriseLibrary.Common.5.0.505.0
EnterpriseLibrary.ExceptionHandling.5.0.505.0
FakeItEasy.1.18.0
Glimpse.1.8.6
Glimpse.AspNet.1.9.1
Glimpse.Mvc5.1.5.3
Iesi.Collections.3.2.0.4000
Microsoft.AspNet.Mvc.5.1.0
Microsoft.AspNet.Razor.3.1.0
Microsoft.AspNet.SignalR.Core.2.1.1
Microsoft.AspNet.WebApi.Client.5.2.0
Microsoft.AspNet.WebApi.Core.5.2.0
Microsoft.AspNet.WebApi.Owin.5.2.0
Microsoft.AspNet.WebApi.OwinSelfHost.5.2.0
Microsoft.AspNet.WebPages.3.1.0
Microsoft.Bcl.Build.1.0.7
Microsoft.Owin.3.0.0
Microsoft.Owin.Host.HttpListener.3.0.0
Microsoft.Owin.Hosting.3.0.0
Microsoft.Owin.Security.3.0.0
Microsoft.Owin.Testing.3.0.0
Microsoft.Web.Infrastructure.1.0.0.0
Moq.4.2.1312.1622
MvvmCross.HotTuna.CrossCore.3.2.1
MvvmCross.PortableSupport.3.2.1
Newtonsoft.Json.5.0.8
NHibernate.3.3.3.4001
NUnit.2.6.3
NUnit.Runners.2.6.3
Owin.1.0
Unity.2.1.505.2
Unity.Interception.2.1.505.2

P.S. Compilation of the sources went OK, it's the documentation that fails.

tillig commented 9 years ago

The doc .shfbproj file just needed an assembly redirect to the latest Autofac version. Done.