.net Autofac错误:无法加载文件或程序集';System.Web.Http,版本=5.2.0.0,…';我的项目是Owin WebApi2 SelfHost

.net Autofac错误:无法加载文件或程序集';System.Web.Http,版本=5.2.0.0,…';我的项目是Owin WebApi2 SelfHost,.net,asp.net-web-api,autofac,owin,self-hosting,.net,Asp.net Web Api,Autofac,Owin,Self Hosting,我有一个使用Microsoft.AspNet.WebApi.OwinSelfHost的简单项目。这是一个Owin自托管WebApi 2项目。该项目非常类似于:- 我唯一的区别是我的安全模块是在单独的组件中(与上述项目类似)。我使用Autofac解决依赖关系 这个项目在没有Autofac的情况下工作。但是,一旦我试图用相应的安全模块和Autofac设置我的项目,我所面临的就是这个错误:- Could not load file or assembly 'System.Web.Http, Vers

我有一个使用Microsoft.AspNet.WebApi.OwinSelfHost的简单项目。这是一个Owin自托管WebApi 2项目。该项目非常类似于:-

我唯一的区别是我的安全模块是在单独的组件中(与上述项目类似)。我使用Autofac解决依赖关系

这个项目在没有Autofac的情况下工作。但是,一旦我试图用相应的安全模块和Autofac设置我的项目,我所面临的就是这个错误:-

Could not load file or assembly 'System.Web.Http, Version=5.2.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)
我的配置非常受此线程的启发:-

此外,我还发现有其他人在与Autofac的此依赖性缺陷作斗争,并通过重新安装Microsoft.AspNet.WebApi.WebHost解决了类似问题:

但这对我不起作用,我不知道为什么。我已经尝试过从头开始重新安装所有东西,但也没有用。此外,Autofac在重新安装时也存在一些权限问题


有人有过这种错误的经验吗?请帮忙。谢谢

在中@user998660的注释帮助下,我成功地解决了这个依赖性问题

我所做的是:

  • 我右键单击了项目引用中的assembly System.Web.Http
  • 我注意到我的项目引用的汇编版本是
    5.2.3.0
  • 从上面的错误中,我知道Autofac正在尝试引用System.Web.Http版本
    5.2.0.0
    。我需要一种方法告诉我的应用程序使用较新的版本
    5.2.3.0
    ,而不是
    5.2.0.0
这是我需要添加到Web.config的
部分的内容:

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.0.0" newVersion="5.2.3.0" />
  </dependentAssembly>


打开托管nuget软件包以获得解决方案,并安装最新的Microsoft Asp.net Web Api 2.2,这解决了我的问题。

有时,.nuget还原可能会出现问题。。虽然成功签入后,在.nuget.config文件中将disableSourceControlIntegration设置为false可以解决此问题。
add key=“disableSourceControlIntegration”value=“false”

我可以确认为我解决的问题也对我有帮助。您应该将此标记为答案。我所要做的就是将
元素更新为@amitthk发布的内容。谢谢如果您使用Nuget Package Manager,它将在再次安装WebApi包时为您修复它。