[A] System.Web.WebPages.Razor.Configuration.HostSection no se puede enviar a ... problema de web.config


158

Estoy teniendo el siguiente error:

[A] System.Web.WebPages.Razor.Configuration.HostSection no se puede convertir a [B] System.Web.WebPages.Razor.Configuration.HostSection. El tipo A se origina en 'System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' en el contexto 'Default' en la ubicación 'C: \ WINDOWS \ Microsoft.Net \ assembly \ GAC_MSIL \ System .Web.WebPages.Razor \ v4.0_2.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '. El tipo B se origina en 'System.Web.WebPages.Razor, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' en el contexto 'Default' en la ubicación 'C: \ Users \ MyName \ AppData \ Local \ Temp \ Temporary Archivos ASP.NET \ root \ 63e7ff36 \ a1cb775d \ assembly \ dl3 \ 8f568c18 \ 9b7ddacf_d04dcf01 \ System.Web.WebPages.Razor.dll '.

He buscado problemas similares en stackoverflow y he usado sus soluciones, pero no parece solucionar el problema que estoy experimentando.

Ocurrió de repente, simplemente presioné una solución limpia y apareció este error. También comencé a usar nuget package restore en la solución. También actualicé mis paquetes (usando Update-package) para que uno de ellos tenga algo que ver con este problema.

Respuestas:


274

Estoy usando VS2013, MVC 5.2.2.0, Web Api 2. Acabo de cambiar todas las versiones de 2.0.0.0 a 3.0.0.0 de la siguiente sección de Web.config que se encuentra dentro de la carpeta Ver de mi proyecto.

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

Y el problema se resuelve. BINGO !!


77
Esto hizo el trabajo por mí. ¡Gracias!
— Joseph Woodward

1
Esto lo resolvió para mí. Estoy convirtiendo una aplicación de formularios web a MVC5.
— Ray

1
@guneysus, ¿cómo harías el equivalente de la respuesta de Kuntal sin edición manual?
— twm

@twm Generalmente Update-Packageedita tambiénweb.config
— guneysus 01 de

¡Por eso me ENCANTA TANTO!
— Homunculus Reticulli

102

Solo agrego mis dos centavos a este problema.

Descubrí que la causa de este error para mí era que las carpetas Vistas web.config estaban haciendo referencia System.Web.WebPages.Razor, Version=2.0.0.0cuando todo lo demás estaba usando3.0.0.0

Parece que la actualización del paquete nuget no tuvo en cuenta esta carpeta de alguna manera.


1
es más preciso! web.config en la carpeta de vistas.
— Rohit Verma

58

La causa de este error es web.config en la carpeta Vistas que hace referencia a System.Web.WebPages.Razor, Versión = 2.0.0.0 en lugar de 3.0.0.0.

Por lo general, esto puede suceder después de una actualización de paquete nuget, que no tiene en cuenta esta carpeta.

Actualiza el Views\Web.configarchivo:

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

para obtener más información sobre la actualización a 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


55
no me parece una solución, más bien me funciona. algunos proyectos pueden depender solo de
— mvc4

12
En particular, parece que la solución para este error se encuentra en la sección "Actualizar los archivos web.config en la carpeta Vistas". Parece que la actualización de MVC4 -> MVC5 con NuGet no actualiza automáticamente los números de versión en Views / Web.config.
— Tyler

Gracias por el enlace! Hubiera sido bueno si la actualización de NuGet al menos hubiera mostrado un enlace a esa página ...
— Jedidja

Seguí la guía y ahora no puedo correr mi sitio en modo de depuración - me dice "... Proyecto con el tipo de salida de la biblioteca de clases no se puede iniciar ..."
— Matt

2
Funcionó para mí, mi problema principal se debió a que no había actualizado las versiones en web.config en la subcarpeta Vistas.
— conectadosoftware

13

Probé todos los métodos anteriores, y el problema aún no se resolvió hasta que inserté las siguientes líneas en web.config directamente en la carpeta del proyecto.

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

3

Si obtiene esto con el Depurador de ruta, entonces necesita actualizar web.config en la carpeta Vistas en el Área para el Depurador de ruta.


Salvador de la vida. Gracias.
— 6footunder

¿Puedes aclarar eso por favor?
— Si8

1

En mi caso, lo resolví también actualizando Web.config en el servidor en vivo que VS actualizó al actualizar a MVC 5

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.