"Hubo un error al ejecutar el generador de código seleccionado" en VS 2013 scaffolding


Estoy creando una nueva vista de un modelo.
El mensaje de error que estoy recibiendo es

Error
Se ha producido un error al ejecutar el generador de código seleccionado:
"Acceso al surco
'C:\Users\XXXXXXX\AppData\Local\Temp\SOMEGUID\EntityFramework.dll 'is denied'.

Estoy corriendo VS 2013 como administrador.

Miré Es MvcScaffolding compatible con VS 2013 RC por línea de comandos? pero esto no parecía resolver la cuestión.

VS2013 C # 5 MVC5 Nuevo proyecto iniciado en VS 2013.

Author: Community, 2013-11-12

21 answers

Error VS2013: Se produjo un error al ejecutar el generador de código seleccionado: 'A configuration for type' SolutionName.Modelo.El vendedor ya tiene se ha añadido ...'

Tuve este problema mientras trabajaba a través de un curso Pluralsight "Datos Padre-Hijo con EF, MVC, Knockout, Ajax y Validación". Estaba tratando de agregar un Nuevo Elemento Scaffolded usando la plantilla MVC 5 Controller con vistas, usando Entity Framework.

La clase de Contexto de Datos I fue usando incluir una anulación del método OnModelCreating. La anulación fue necesaria para agregar algunas configuraciones explícitas de columna de base de datos donde los valores predeterminados de EF no eran adecuados. Esta anulación fue simple, funcionó y no hubo errores, pero (como se señaló anteriormente) interfirió con la generación de código de andamiaje del Controlador.

Solución que funcionó para mí:

1-He eliminado (comentado) mi OnModelCreating override y la plantilla de andamiaje completada sin mensajes de error-mi el código del controlador se generó como se esperaba.

2 - Sin embargo, tratar de construir el proyecto se ahogó porque 'El modelo había cambiado'. Dado que el código de mi controlador se generó correctamente, restauré (sin comentarios) la anulación de OnModelCreating y el proyecto se construyó y ejecutó con éxito.

 24
Author: Bill B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-08 14:08:31

El problema fue con una web dañada.configuración y directorio de paquetes.

Creé el nuevo proyecto, y copié mis archivos de código al nuevo proyecto de trabajo, más tarde volví y corrí diffs en los archivos de configuración y una carpeta diff en el propio proyecto.

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

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

No he investigado por qué el archivo de configuración o la carpeta del paquete estaba tan borked, pero asumo que es una de dos cosas.

  1. Posiblemente el paquete nuget tenga un defecto
  2. El control de código fuente de TFS impidió que nuget actualizara correctamente los dependencia.

Desde entonces, antes de aplicar cualquier actualización, compruebo todo. Sin embargo, dado que no he actualizado EF en un tiempo, no hay evidencia de que esto haya resuelto mi problema de EF o andamiaje.

 16
Author: Brian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-12 22:51:05

Pude resolver este problema y tener un poco mejor entendimiento de lo que estaba pasando. La mejor parte es que soy capaz de 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 tanto para el proyecto de Capa de Acceso a Datos como para el Proyecto Web.

Mi capa de acceso a datos tenía Entity Framework v6.0.2 instalado usando NuGet, el proyecto web no tenía Entity Framework instalado. Cuando se trata de cree un controlador de API web con la plantilla 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 reciente en el proyecto Web, el problema desapareció.

 12
Author: isingh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-07 20:09:28

Revisé todos mis proyectos y cada uno tenía la misma versión de Entity Framework. En mi caso, el problema era que uno de mis proyectos tenía como objetivo.Net 4.0 mientras que el resto era. Net 4.5.

Solución:

  1. Para cada proyecto en Proyecto de solución->Propiedades->Aplicación: Establezca Target Framework en.Net 4.5 (o lo que necesite).
  2. Herramientas - > Administrar el paquete NuGet para la solución. Busque "Entity Framework" instalado. Y haz clic en Administrar. Desmarque todos los proyectos (tenga en cuenta la proyectos que requieren FE). Ahora, Vuelva a administrar EF y verifique los proyectos que necesita.
  3. Limpiar y Reconstruir la solución.
 10
Author: RitchieD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-22 16:07:20

Probé cada respuesta en cada sitio web que encontré, y nada funcionó... hasta esto. Publicar tarde en caso de que alguien como yo venga y tenga la misma experiencia frustrante que yo.

Mi problema fue similar a muchos aquí, mensaje de error genérico al intentar usar scaffolding para intentar agregar un nuevo controlador (ef6, webapi). Inicialmente pude usar andamios para unos 15 controladores, después de eso simplemente dejó de funcionar un día.

Final Solución:

  1. Abra su carpeta de trabajo en su disco duro para su solución.
  2. Eliminar todo lo que hay dentro de la carpeta BIN
  3. Elimina todo lo que hay dentro de la carpeta OBJ
  4. Solución Limpia, Solución de Reconstrucción, Agregar Controlador a través de andamios

Voila! (para mí)

 9
Author: erikrunia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-13 14:46:31

Esto suele ser causado por un archivo Web.config no válido. Tuve el mismo problema y resultó que inadvertidamente cambié el bloque de comentarios HTML <!-- --> a un bloque de comentarios del lado del servidor @* *@ (a través de una acción Reemplazar todo).

Y en caso de que esté desarrollando una aplicación WinForms, intente buscar en App.config.

 4
Author: Moslem Ben Dhaou,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-25 11:17:49

Tengo exactamente el mismo problema. Primero encontró esto mientras seguía a lo largo del curso Pluralsight "Datos Padre-Hijo con EF, MVC, Knockout, Ajax y Validación".

Estoy usando MVC 5, EF 6.1.1 y framework 4.5.2.

Incluso después de actualizar mi VS2013 a la actualización 4, este error persistió.

Pudo evitar este molesto problema cambiando el DbSet a IDbSet dentro de la clase DbContext. La respuesta fue originalmente de aquí .

//From
public DbSet SalesOrders { get; set; }

//To
public IDbSet SalesOrders { get; set; }
 4
Author: scyu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:18:04

Lo que funcionó para mí para resolver esto: Cerrar la solución, Y abrir el proyecto haciendo clic en archivo de proyecto y no el archivo de solución, añadir su controlador, y bobs su tío

 2
Author: Gerrie Pretorius,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-06 09:52:30

Nada de lo anterior me ayudó.

Encontré que la causa de mi problema estaba anulando OnModelCreating en mi clase de contexto de la que dependía el elemento scaffold. Comentando este método, entonces el andamio funciona.

Deseo que Microsoft libere menos código con errores.

 2
Author: Jim Taliadoros,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-12 00:56:12

Para nosotros tiene algo que ver con las configuraciones de compilación, donde tenemos una configuración de compilación Debug|x64 que recientemente habíamos cambiado a usar, que en retrospectiva parecía ser cuando el andamiaje dejó de funcionar.

(Sospecho que hay al menos 10 cosas diferentes que pueden causar esto, como lo demuestran las diversas respuestas para que algunas personas encuentren trabajo para ellos but pero que no funcionan para otros, por lo que no estoy sugiriendo que mi solución funcione para todos).

¿Qué trabajó para nosotros (usando VS 2013 Express para Web en Windows 7 de 64 bits):

It (scaffolding) was NOT working in Debug|x64 Build configuration. Pero hacer lo siguiente (y parece que cada paso es necesario't no pude averiguar cómo hacerlo de una manera más ágil) parece funcionar para nosotros.

  1. Primero, cambie a Debug|x86 use use Solution (haga clic con el botón derecho) Configuration Manager para todos los proyectos de su solución. (Depurar / Cualquier CPU también puede funcionar).
  2. Limpie su solución.
  3. Apague Visual Studio. (no puedo hacer que funcione si me salto esto).
  4. Abre Visual Studio.
  5. Abra su solución.
  6. Construya su solución.
  7. Ahora intente agregar elementos de andamiaje; para nosotros, funcionó en este punto, ya no recibimos el mensaje de error que decía algo sobre "Hubo un error al ejecutar el generador de código seleccionado".

Si necesita volver a una configuración de construcción de andamiaje que no funciona, puede hacerlo, después de has montado todo lo que necesitas por el momento. Cambiamos de nuevo a nuestro Debug|x64 después de andamiaje lo que necesitábamos.

 2
Author: DWright,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-08 18:00:33

He visto este error con un nuevo proyecto MVC5 al hacer referencia a un modelo de un proyecto diferente. Comprobando la ruta, EntityFramework.dll existía. Sin embargo, era de solo lectura. Process monitor mostró que hubo un error al intentar eliminar el archivo. Configuración de EntityFramework.dll en la carpeta mis paquetes (copia almacenada en el control de código fuente) a writeable evitó este error, pero trajo otro diciendo que no podía cargar el ensamblaje EntityFramework porque no coincidía con el referenciado. Mi clase modelo fue definida en un proyecto diferente que estaba usando una versión anterior de entity framework. El proyecto MVC5 hacía referencia a EF 6, mientras que el modelo procedía de un proyecto de referencias EF 4.4. La actualización a EF 6 en el proyecto del modelo lo arregló para mí.

 1
Author: Lindsey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-21 09:15:40

Tuve este problema al intentar agregar un Controlador Api a mi MVC ASP.NET aplicación web por una razón completamente diferente a las otras respuestas dadas. Accidentalmente había incluido un atributo StringLength con una declaración IndexAttribute para una propiedad integer debido a una operación de copiar y pegar:

[Index]
[IndexAttribute("NumTrainingPasses", 0), StringLength(50)]
public int NumTrainingPasses { get; set; }

Una vez que me deshice de la declaración IndexAttribute pude agregar un Controlador Api para el Modelo que contenía la propiedad infractora (NumTrainingPasses).

Para ayudar a los motores de búsqueda, aquí está el mensaje de error completo que recibí antes de solucionar el problema:

Se ha producido un error al ejecutar el generador de código seleccionado:

No se pueden recuperar los metadatos de ' Owner.Modelo.MainRecord". La propiedad
'NumTrainingPasses' no es una matriz de cadenas o bytes. Longitud solo puede ser configurado para propiedades de matriz de cadenas o bytes.

 1
Author: Robert Oschler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-15 20:10:09

Esto suele estar relacionado con un formato de tu Web.config

Reconstruir solución y buscar en Errores, tab Mensajes. Si tienes algún problema de formato con una web.config lo verás allí. Arréglalo y vuelve a intentarlo.

Ejemplo: Tenía connectionstring en lugar de connectionString

 1
Author: Marko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-12 20:09:53

En caso de que ayude a alguien, renombré el espacio de nombres en el que residía el modelo, luego reconstruí el proyecto, luego lo renombré de nuevo, y reconstruí, y luego funcionó.

 0
Author: Adam Marshall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-03 14:45:42

Reconstruir la solución funciona para mí. antes de reconstruir, me parece que el número de referencias de mi 'ApplicationDbContext' es cero, eso es imposible, por lo que la solución de reconstrucción, todo está bien ahora.

 0
Author: simon9k,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-10 10:08:17

A menudo me encuentro con este error trabajando con MVC5 y EF cuando creo los modelos y el contexto en un proyecto separado (Mi capa de acceso a datos) y me olvido de agregar la cadena de conexión de contexto a la Web del proyecto MVC.Config.

 0
Author: John S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-06 06:53:01

También tengo este problema con la actualización 4 de MSVS2013 y EF 6.0 El mensaje que estaba recibiendo era:

    there was an error running the selected code generator.
A configuration for type XXXX has already been added ...[]

Tengo un modelo con alrededor de 10 clases. Yo andamiaje elementos al principio del proyecto sin problemas.

Después de algunos días añadiendo funcionalidad, intenté hacer scaffold a otra clase del modelo, pero un error me impedía hacerlo.

He intentado actualizar MSV de la actualización 2 a la actualización 4, comentar mi método OnModelCreating y otras ideas propuesta no hubo suerte.

Como una forma temporal de continuar con el proyecto, he creado una asp.net proyecto, pegado allí mis clases modelo (estoy usando fluent api, por lo que hay poca anotación en ellos) y creado con éxito mi controlador y vistas.

Después de eso, pegué las clases creadas al proyecto original y corrije algunos errores (principalmente nombres dbset).

Parece estar funcionando, aunque supongo que todavía encontraré errores relacionados con relaciones entre clases (debido a la falta de una configuración fluida cuando se crea).

Espero que esto ayude a otros usuarios.

 0
Author: user1839387,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-25 12:05:29

Esto me sucedió cuando intenté crear un nuevo scaffold fuera de la carpeta de nivel superior para un Área dada.

  • MyArea
    | - File.cs (trató de crear un nuevo andamio aquí. Fallo.)

Simplemente re-seleccioné mi área y el problema desapareció:

  • AyArea (Add => new scaffold item)

Tenga en cuenta que después de la generación de andamios se le lleva a un lugar donde no podrá crear un nuevo andamio sin volver a seleccionar el área primero (en VS 2013 por lo menos).

 0
Author: P.Brian.Mackey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-20 15:51:55
  • vs2013 update 4
  • ef 5.0.0
  • ibm db2connector 10.5 fp 5

Cambia la web.archivo de configuración como tal: se eliminaron los proveedores de la etiqueta ef:

<entityFramework>
</entityFramework>

Se agregaron etiquetas de cadena de conexión en las secciones de configuración:

</configSections>
<connectionStrings>
<add name=".." connectionString="..." providerName="System.Data.EntityClient" />
</connectionStrings>
 0
Author: gummylick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-28 04:02:39

Tuve el mismo problema cuando en mi MVC app EF reference property (en la ventana de Propiedades) "Specific version" se marcó como False y en mi otro proyecto (que contiene DbContext y modelos) que se refrenó de MVC app que EF reference property se marcó como True. Cuando lo marqué como Falso todo estaba bien.

 0
Author: Iwona Kubowicz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-15 11:02:56

Sé que estoy fuera hasta tarde, pero fue muy frustrante, así que espero que esto pueda ayudar un poco ...

Mi problema fue similar a la experiencia de muchos aquí, mensaje de error genérico al intentar agregar una nueva vista o usar andamiaje para agregar un nuevo controlador.
Descubrí que mvc 5 y ef 6 modelbuilder no son buenos amigos:

Mi solución:
1.Comenta ModelBuilder en tu clase Context.
2.Solución Limpia, Solución de Reconstrucción.
3.Agregar vista y Controlador a través de andamios
4. Descomentar modelbuilder.

Tal vez un poco poco convencional - pero funcionó! (para mí)

 0
Author: freddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-15 10:22:46