El tipo o espacio de nombres 'MVC' no existe en el espacio de nombres 'System.Web'

StackOverflow https://stackoverflow.com/questions/2692007

  •  01-10-2019
  •  | 
  •  

Pregunta

Después de la conversión de un híbrido ASP.NET MVC1 aplicación para MVC2 Estoy recibiendo el siguiente error cuando intento y ejecutar la aplicación:

El tipo o espacio de nombres 'MVC' no existe en el espacio de nombres 'System.Web' (¿falta una referencia de ensamblado?)

El culpable allegeded en el archivo web.config es System.Web.Mvc:

<namespaces>
    <add namespace="System.Web.Mvc"/>
    <add namespace="System.Web.Mvc.Ajax"/>
    <add namespace="System.Web.Mvc.Html"/>

Hasta ahora mi investigación me parece llevar a creer que la versión 2 de System.Web.Mvc no está instalado o no se ha recogido.

He intentado crear un Archivo> Nuevo proyecto basado en MVC 2 y que de recoger el nuevo (v2) versión de MVC. También me he convertido algunos otros proyectos (que no eran híbridos) y que he convertido sin problemas a MVC2.

También he desinstalado MVC1 para tratar de referencias Quitar para que desde el GAC. Sin embargo, nada de esto ha funcionado.

¿Alguna idea?

¿Fue útil?

Solución

Asegúrese de que tiene la redirección de unión en su Web.config:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Web.Mvc" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

Este MVC 2 fuerzas incluso si MVC 1 está en la máquina.

También: MVC 1 tiene un espacio de nombres System.Web.Mvc, así que asegúrese de que también tiene:

  <assemblies>
    <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

Otros consejos

Me encontré con algo similar y la solución fue cambiar la referencia a Microsoft.Web.Mvc a copia local se establece en True.

Yo tenía el mismo error y haciendo clic en el enlace de error de compilación detallada en la página mostró problemas con System.Web.Helpers, .Http, y .WebPages.

Después de realizar copias de seguridad del sistema que corrió update-package -reinstall' y forzó una desinstalación / reinstalación de todos los paquetes. Este archivo web.config obligado a ser reconstruido correctamente y que las secciones dependentAssembly se construyeron derecha.

Después de la reconstrucción de la solución se corrió por primera vez.

Nota, se añade el siguiente apartado providers mal en el web.config.

<contexts>
  <context type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</contexts>
<providers>
  <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>

Esto sólo genera una advertencia de construcción, pero lo hice y eliminar a favor del elemento contexts precedente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top