Asp.net mvc 缺少Autofac 3.4,而调用了3.5

Asp.net mvc 缺少Autofac 3.4,而调用了3.5,asp.net-mvc,Asp.net Mvc,尝试运行成功构建的MVC 5.2项目时,出现以下错误: 中发生类型为“System.IO.FileLoadException”的异常 ProjectNamespace.WebUI.dll,但未在用户代码中处理 其他信息:无法加载文件或程序集“Autofac, 版本=3.4.0.0,区域性=中性,PublicKeyToken=17863af14b0044da'或 它的一个依赖项。找到的程序集的清单定义 与程序集引用不匹配。(HRESULT的例外情况: 0x8013100) 从以下位置加载程序集管理

尝试运行成功构建的MVC 5.2项目时,出现以下错误:

中发生类型为“System.IO.FileLoadException”的异常 ProjectNamespace.WebUI.dll,但未在用户代码中处理

其他信息:无法加载文件或程序集“Autofac, 版本=3.4.0.0,区域性=中性,PublicKeyToken=17863af14b0044da'或 它的一个依赖项。找到的程序集的清单定义 与程序集引用不匹配。(HRESULT的例外情况: 0x8013100)

从以下位置加载程序集管理器: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll运行于 可执行文件C:\Program Files(x86)\IIS Express\iisexpress.exe ---下面是详细的错误日志

===预绑定状态信息===日志:DisplayName=Autofac,版本=3.4.0.0,区域性=neutral,PublicKeyToken=17863af14b0044da (完全指定)日志:Appbase=file:///C:/ProjectPath/WebUI/ 日志: 初始PrivatePath=C:\ProjectPath\WebUI\bin调用程序集: Autofac.Integration.Mvc,版本=3.3.0.0,区域性=中性, PublicKeyToken=17863af14b0044da。 ==日志:此绑定在默认加载上下文中启动。日志:未找到应用程序配置文件。日志:使用主机配置文件: C:\Users\me\Documents\IISExpress\config\aspnet.config日志:使用 来自的计算机配置文件 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config。 日志:发布策略参考:Autofac,版本=3.4.0.0,区域性=中性, PublicKeyToken=17863af14b0044da日志:正在尝试下载新URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET文件/root/5c8bedab/6a36492/Autofac.DLL。日志:正在尝试 下载新网址 file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET文件/root/5c8bedab/6a36492/Autofac/Autofac.DLL。日志: 正在尝试下载新的URL file:///C:/ProjectPath/WebUI/bin/Autofac.DLL. 警告:比较 程序集名称导致不匹配:次要版本错误:未能 完成组件的设置(hr=0x8013100)。调查结束了

My web.config具有以下设置:

<dependentAssembly>
     <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
     <bindingRedirect oldVersion="0.0.0.0-3.5.0.0" newVersion="3.5.0.0" />
</dependentAssembly>


花了几个小时试图解决它,但失败了。请帮忙。

这个问题已经很普遍了。当您有Autofac、Autofac.Mvc5和Microsoft.AspNet.Mvc>5.1.0包时,似乎会出现这种情况,尽管Autofac.Mvc5已声明与Microsoft.AspNet.Mvc一起使用(≥ 5.1.0 && < 6.0.0).

  • 我建议经典的解决方案是为autofac检查和添加适当的程序集绑定重定向,不仅在引用它的项目中,而且在引用该项目的项目中

  • 另一个潜在问题是有两个条目用于

    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    
    ,它在解决问题方面帮了我很大的忙,尽管我的最终解决方案很懦弱,我选择了Autofac3.4.0.0和Microsoft.AspNet.Mvc 5.1.0。我花了太多时间来解决这个问题

    另外,对于那些感兴趣的人,您可以使用nuget manager来检测和填写程序集绑定重定向:Get Project-All | Add BindingRedirect(from)。根据你的项目和参考资料,之后可能需要添加一些内容,但至少它会给你一个全新的开始

    更新
    Microsoft.AspNet.Mvc 5.2.3已经发布,所以我决定再试一次。我将“冲突”中涉及的每个软件包更新为最新版本(Autofac 3.5.2、Autofac.Mvc5 3.3.4、Microsoft.AspNet.Mvc 5.2.3)。我更新了重定向绑定,它成功了。

    到现在为止您都尝试了什么?对于此类错误,如果卸载并再次安装,软件包将解决此问题。