Saltar al contenido

“Hubo un error al ejecutar el generador de código seleccionado” en el andamiaje VS 2013

Te sugerimos que pruebes esta resolución en un entorno controlado antes de enviarlo a producción, un saludo.

Solución:

Error de VS2013: hubo un error al ejecutar el generador de código seleccionado: ‘ Ya se agregó una configuración para el tipo ‘SolutionName.Model.SalesOrder’ …’

Tuve este problema mientras trabajaba en un curso de Pluralsight “Datos de padres e hijos con EF, MVC, Knockout, Ajax y Validación”. Estaba tratando de agregar un Nuevo artículo con andamios usando la plantilla Controlador MVC 5 con vistas, usando Entity Framework.

La clase de contexto de datos que estaba usando, incluida una anulación del método OnModelCreating. Se requirió la anulación para agregar algunas configuraciones de columna de base de datos explícitas donde los valores predeterminados de EF no eran adecuados. Esta anulación fue simple, funcionó y no tuvo errores, pero (como se indicó anteriormente) interfirió con la generación de código de andamiaje del controlador.

Solución que funcionó para mí:

1: eliminé (comenté) mi anulación de OnModelCreating y la plantilla de scaffolding se completó sin mensajes de error: mi código de controlador se generó como se esperaba.

2 – Sin embargo, intentar construir el proyecto se atragantó porque ‘El modelo había cambiado’. Dado que el código de mi controlador ahora se generó correctamente, restauré (sin comentar) la anulación de OnModelCreating y el proyecto se creó y ejecutó correctamente.

El problema estaba en un web.config corrupto y en el directorio del paquete.

Creé el nuevo proyecto y copié mis archivos de código en el nuevo proyecto de trabajo, luego volví y ejecuté diffs en los archivos de configuración y una carpeta diff en el proyecto mismo.

El problema era que las actualizaciones habían desechado mucho mi archivo de configuración con muchos artefactos de actualización que terminé eliminando.

El segundo problema era que el proyecto anterior también se aferraba a las DLL más antiguas que se suponía que debían borrarse con la aplicación del paquete Nuget. Así que borré las carpetas obj y bin, luego la carpeta del paquete. Después de hacer eso, pude reparar el proyecto anterior y construirlo limpiamente.

No he investigado por qué el archivo de configuración o la carpeta del paquete estaban tan dañados, pero supongo que es una de dos cosas.

  1. Posiblemente el paquete nuget tiene una falla
  2. El control de código fuente de TFS impidió que nuget actualizara correctamente las distintas dependencias.

Desde entonces, antes de aplicar cualquier actualización, reviso todo. Sin embargo, dado que no he actualizado EF por un tiempo, no tengo evidencia de que esto haya resuelto mi problema de EF o scaffolding.

Pude resolver este problema y tener una mejor comprensión de lo que estaba pasando. La mejor parte es que puedo recrear el problema y solucionarlo para estar seguro de mi explicación aquí.
La resolución fue instalar exactamente la misma versión de Entity Framework para el proyecto de capa de acceso a datos y el proyecto web.

Mi capa de acceso a datos tenía instalado Entity Framework v6.0.2 usando NuGet, el proyecto web no tenía instalado Entity Framework. Al intentar crear un controlador de API web con una plantilla de Entity Framework, Entity Framework se instala automáticamente, pero es una de las versiones anteriores 6.0.0. Me sorprendió ver dos versiones de Entity Framework instaladas, más nuevas en mi proyecto de capa de datos y más antiguas en mi proyecto web. Una vez, eliminé la versión anterior e instalé la versión más nueva en Web Project, el problema desapareció.

Reseñas y valoraciones de la guía

Si te ha resultado provechoso este post, agradeceríamos que lo compartas con más juniors y nos ayudes a dar difusión a este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *