2012-09-30 24 views
13

No he podido encontrar una respuesta a esto y he estado rastreando Internet todo el fin de semana, así que esperaba que tal vez me pudieras ayudar con esto.¿Por qué recibo errores de compilación en un nuevo proyecto MVC4?

Al usar Visual Studio 2012, creo un nuevo proyecto de aplicación web MVC4 y obtengo algunos errores de compilación.

Aquí está mi problema:

  1. puedo crear una nueva aplicación Web MVC4 utilizando Visual Studio 2012, selecciono de aplicaciones de Internet y la ponga a utilizar RAZOR motor.

  2. voy a propiedades de la aplicación y bajo la pestaña de aplicaciones que cambian marco de destino de .NET Framework 4.5 a .NET Framework 4.

  3. La acumulación produce los siguientes errores:

    de error 1 El tipo de nombre 'TableAttribute' no se pudo encontrar. Este tipo se ha reenviado al ensamblado 'System.ComponentModel.DataAnnotations, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'. Considere agregar una referencia a ese ensamblaje. c: \ users \ saad \ documents \ visual studio 2012 \ Projects \ MvcApplication1 \ MvcApplication1 \ Models \ AccountModels.cs 21 6 MvcApplication1

    Error 2 No se pudo encontrar el tipo o el nombre del espacio de nombres 'Tabla' (¿falta un directiva using o una referencia de ensamblado) c: \ users \ Saad \ documentos \ visual Studio 2012 \ Projects \ MvcApplication1 \ MvcApplication1 \ models \ AccountModels.cs 21 6 MvcApplication1

    de error 3 El tipo o espacio de nombres 'DatabaseGeneratedAttributeAttribute' podría no se encuentra (¿falta una directiva using o una referencia de ensamblado?) c: \ users \ saad \ documents \ visual studio 2012 \ Projects \ MvcApplication1 \ MvcApplication1 \ Models \ AccountModels.cs 25 10 MvcApplication1

    Error 4 No se pudo encontrar el tipo de nombre 'DatabaseGeneratedAttribute'. Este tipo se ha reenviado al ensamblado 'System.ComponentModel.DataAnnotations, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'. Considere agregar una referencia a ese ensamblaje. c: \ users \ saad \ documents \ visual studio 2012 \ Projects \ MvcApplication1 \ MvcApplication1 \ Models \ AccountModels.cs 25 10 MvcApplication1

    Error 5 No se encontró el tipo o el nombre del espacio de nombres 'CompareAttribute' (¿falta una using directive or a assembly reference?) c: \ users \ saad \ documents \ visual studio 2012 \ Projects \ MvcApplication1 \ MvcApplication1 \ Models \ AccountModels.cs 54 10 MvcApplication1

    Error 6 El tipo o nombre del espacio de nombres 'Comparar' podría no se encuentra (¿falta una directiva de uso o una referencia de ensamblado?) c: \ users \ saad \ documents \ visual studio 2012 \ Projects \ MvcApplication1 \ MvcApplication1 \ Models \ AccountModels.cs 54 10 MvcApplication1

    Error 7 No se encontró el tipo o el nombre del espacio de nombres 'CompareAttribute' (¿falta una directiva using o una referencia de ensamblado?) C: \ users \ saad \ documents \ visual studio 2012 \ Projects \ MvcApplication1 \ MvcApplication1 \ Models \ AccountModels .cs 87 10 MvcApplication1

    Error 8 No se encontró el tipo o el nombre del espacio de nombres 'Comparar' (¿falta una directiva using o una referencia de ensamblado?) c: \ users \ saad \ documents \ visual studio 2012 \ Projects \ MvcApplication1 \ MvcApplication1 \ Models \ AccountModels.cs 87 10 MvcApplication1

+0

¿alguna noticia sobre esto? – Cybermaxs

Respuesta

7

De hecho, no es un problema del proyecto de plantilla MVC4 sino de cambiar el destino de .NET Framework.

Cuando cree un nuevo proyecto MVC4 en VS2012, hará referencia (por defecto) .Net 4.5. Todos los archivos se generan en base a esta versión. El AccountModel utilizar nuevos atributos de System.ComponentModel.DataAnnotations (TableAttribute, DatabaseGeneratedAttribute, ...

Retargetting la versión marco sólo cambiar las referencias y no afecta al código fuente:. Atributos de 4,5 marco no se eliminará el

Si desea una Projet MVC4 con .Net 4.0, usted podría:

  • Eliminado .net 4.5 atributos de AccountModel
  • Quitar AccountMode si no se requiere
  • Seleccione .NET 4.0 en el Asistente para crear un nuevo proyecto.
26

vuelva a montar ADO.NET Entity Framework:

  1. Ir al paquete de la consola Administrador de
  2. Desinstalar Paquete ADO.NET Entity Framework
  3. Instalar Paquete ADO.NET Entity Framework

que es el error debe desaparecer!

+3

Esto debe marcarse como la respuesta. – vbocan

+1

+1 márquelo como respuesta, gracias @Stacker para compartir, ¡Thumbs Up! –

+0

Cuidado: los comandos de la consola del administrador de paquetes parecen ser sensibles a las mayúsculas y minúsculas o minuciosos respecto al espaciado. Inicialmente, esta respuesta falló para mí hasta que la escribí exactamente como se muestra. – DeveloperDan

1

La solución de entidad de paquete de desinstalación/entidad de paquete/paquete de instalación no funcionó. En cambio, tuve que abrir el archivo .csproj en el bloc de notas y buscar y reemplazar "net40" por "net45" para forzarlo a cargar la versión .net 4.5 de todos los paquetes. Esto hizo que la versión correcta de EntityFramework también se cargara.

+0

trabajo para mí, gracias – Codename

Cuestiones relacionadas