System.Web.WebPages.Razor.Configuration.HostSection不能转换为… web.config问题

我收到以下错误:

[A] System.Web.WebPages.Razor.Configuration.HostSection不能转换为[B] System.Web.WebPages.Razor.Configuration.HostSection。 typesA来源于'System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35',位置为'C:\ WINDOWS \ Microsoft.Net \ assembly \ GAC_MSIL \ System .Web.WebPages.Razor \ v4.0_2.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll”。 typesB来源于'C:\ Users \ MyName \ AppData \ Local \ Temp \ Temporary'上下文'Default'中的'System.Web.WebPages.Razor,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35' ASP.NET Files \ root \ 63e7ff36 \ a1cb775d \ assembly \ dl3 \ 8f568c18 \ 9b7ddacf_d04dcf01 \ System.Web.WebPages.Razor.dll'。

我已经search了类似的问题,并使用他们的解决scheme,但似乎并没有解决我遇到的问题stackoverflow。

它突然发生,我只是按下干净的解决scheme,这个错误popup。 我也开始在解决scheme上使用nuget包恢复。 我更新了我的软件包(使用Update-package),所以其中一个可能与这个问题有关。

我正在使用VS2013,MVC 5.2.2.0,Web Api 2.我刚刚将所有版本从2.0.0.0更改为3.0.0.0下面的Web.config部分驻留在我的项目的视图文件夹内。

<configSections> <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> </sectionGroup> 

问题就解决了。 答对了 !!

只要加上我的两美分这个问题。

我发现这个错误的原因是, 视图文件夹 web.config引用System.Web.WebPages.Razor, Version=2.0.0.0时,一切都使用3.0.0.0

似乎nuget-package升级没有考虑到这个文件夹莫名其妙。

通过更新一切到MVC 5下面的这个链接: http : //www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-项目到ASPNET-MVC-5和Web的API-2

尝试了上述所有的方法,直到我在web.config中直接在项目文件夹下插入以下行,问题仍然没有解决。

  <dependentAssembly> <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> 

如果你使用路由debugging器得到这个,那么你需要更新路由debugging器区域下面的视图文件夹中的web.config。

在我的情况下,我已经解决了这个问题,同时更新了升级到MVC 5的VS更新的活动服务器上的Web.config