c# - that - [A] System.Web.WebPages.Razor.Configuration.HostSection不能转换为... web.config问题




this project references nuget package s that are missing on this computer (4)

只需将我的两分钱添加到此问题。

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

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

我收到以下错误:

[A] System.Web.WebPages.Razor.Configuration.HostSection不能转换为[B] System.Web.WebPages.Razor.Configuration.HostSection。 类型A来源于'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”。 类型B来源于'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'。

我已经在类似的问题上搜索了stackoverflow,我用他们的解决方案,但它似乎并没有解决我遇到的问题。

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


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


导致此错误的原因是引用System.Web.WebPages.Razor的Views文件夹中的web.config,Version = 2.0.0.0而不是3.0.0.0。

通常情况下,这可能发生在nuget-package升级之后,这不包括此文件夹。

更新Views\Web.config文件:

<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>

有关升级到MVC 5的更多信息, http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-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>






nuget-package-restore