C# [A] System.Web.WebPages.Razor.Configuration.HostSection无法强制转换为。。。web.config问题

C# [A] System.Web.WebPages.Razor.Configuration.HostSection无法强制转换为。。。web.config问题,c#,web-config,nuget,nuget-package,nuget-package-restore,C#,Web Config,Nuget,Nuget Package,Nuget Package Restore,我得到以下错误: [A] 无法强制转换System.Web.WebPages.Razor.Configuration.HostSection 至[B]System.Web.WebPages.Razor.Configuration.HostSection。A型 源自“System.Web.WebPages.Razor,版本=2.0.0.0”, 区域性=中性,PublicKeyToken=31bf3856ad364e35'在上下文中 位置处的“默认值” 'C:\WINDOWS\Microsoft.N

我得到以下错误:

[A] 无法强制转换System.Web.WebPages.Razor.Configuration.HostSection 至[B]System.Web.WebPages.Razor.Configuration.HostSection。A型 源自“System.Web.WebPages.Razor,版本=2.0.0.0”, 区域性=中性,PublicKeyToken=31bf3856ad364e35'在上下文中 位置处的“默认值” 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0_uuu31BF3856AD364E35\System.Web.WebPages.Razor.dll'。 类型B源于'System.Web.WebPages.Razor,版本=3.0.0.0, 区域性=中性,PublicKeyToken=31bf3856ad364e35'在上下文中 位置“C:\Users\MyName\AppData\Local\Temp\Temporary”处的“Default” ASP.NET Files\root\63e7ff36\a1cb775d\assembly\dl3\8f568c18\9b7ddacf\u d04dcf01\System.Web.WebPages.Razor.dll'

我在stackoverflow中搜索过类似的问题,并使用了他们的解决方案,但它似乎无法解决我遇到的问题


它突然发生了,我只是按了一下干净的溶液,这个错误就出现了。我还开始在解决方案上使用nuget package restore。我也更新了我的包(使用更新包),因此其中一个包可能与此问题有关

此错误的原因是视图文件夹中的web.config引用System.web.WebPages.Razor,版本为2.0.0.0,而不是3.0.0.0

通常,这可能发生在nuget软件包升级之后,该升级不考虑此文件夹

更新
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的更多信息,在我的例子中,我通过更新live server上的Web.config解决了这个问题,VS在升级到MVC 5时更新了该服务器

我发现对我来说,这个错误的原因是视图文件夹web.config引用了
System.web.WebPages.Razor,Version=2.0.0.0
,而其他一切都在使用
3.0.0


似乎nuget软件包升级并没有以某种方式解释此文件夹。

我使用的是VS2013、MVC 5.2.2.0、Web Api 2。我刚刚将Web.config的以下部分的所有版本从2.0.0更改为3.0.0。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>

问题就解决了。
宾果

如果使用Route Debugger获得此结果,则需要更新Route Debugger区域下Views文件夹中的web.config。

尝试了上述所有方法,直到我在project文件夹下的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>


这听起来不像是一个解决方案,而是我自己解决的。某些项目可能仅依赖于mvc4。特别是,修复此错误的方法似乎出现在“更新视图文件夹下的web.config文件”部分。使用NuGet从MVC4->MVC5进行更新似乎不会自动更新Views/Web.config中的版本号。谢谢链接!如果NuGet更新能够至少显示一个指向该页面的链接,那就太好了…我遵循了指南,现在我无法在调试模式下运行我的站点-告诉我“…无法启动输出类型为类库的项目…”为我工作,我的主要问题是因为我没有更新视图子文件夹中web.config中的版本。这帮我解决了问题。谢谢这为我解决了问题。我正在将一个webforms应用程序转换为MVC5。@guneysus,如果不进行手动编辑,您将如何做与Kuntal的答案等效的工作?@twm通常
更新包
也编辑
web.config
这就是我如此喜爱的原因!救生员。谢谢。你能澄清一下吗?更准确些!视图文件夹中的web.config。