C# 类型';ApiController';存在于';System.Web.Http,版本=4.0.0.0';和';System.Web.Http,版本=5.2.3.0';

C# 类型';ApiController';存在于';System.Web.Http,版本=4.0.0.0';和';System.Web.Http,版本=5.2.3.0';,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我尝试升级我的NuGet软件包以获得更新版本的asp.net程序集(5.2.3)。在升级它们之后,我在编译时遇到了这个错误 我已经清除了packages文件夹并重新生成,我已经重新安装了所有软件包,我已经清除了我的bin等。升级到5.2.3后,我无法生成,因为我一直遇到此错误。我的bin中System.Web.Http.dll的版本是正确的。此dll不在我的GAC中。我不确定编译器还能在哪里找到这个dll的版本4.0.0.0。我的web.config中有一个bindingRedirect <

我尝试升级我的NuGet软件包以获得更新版本的asp.net程序集(5.2.3)。在升级它们之后,我在编译时遇到了这个错误

我已经清除了packages文件夹并重新生成,我已经重新安装了所有软件包,我已经清除了我的bin等。升级到5.2.3后,我无法生成,因为我一直遇到此错误。我的bin中System.Web.Http.dll的版本是正确的。此dll不在我的GAC中。我不确定编译器还能在哪里找到这个dll的版本4.0.0.0。我的web.config中有一个bindingRedirect

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


我还运行了
更新包-ProjectName[ProjectName]-重新安装

我终于找到了问题的根源。.csproj文件仍在引用旧的DLL,即使在VS解决方案资源管理器中浏览引用时,它只在其中一次,并且是正确的版本。我从.csproj文件中删除了那些旧的引用,现在解决了此错误。

由于项目中存在其他同名的引用程序集,因此包名称不明确。尝试在Package Manager控制台中使用更新包[PackageName]-ProjectName[ProjectName]-重新安装
。检查您的.config文件,查看其引用是否仍在其中。VS可能没有正确清理。