c# - dinamico - menu en mvc
No se puede definir una clase o miembro que utilice ''dinámico'' porque el compilador requirió el tipo ''System.Runtime.CompilerServices.DynamicAttribute'' (5)
Estoy tratando de ejecutar una aplicación .NET MVC en mi computadora local que obtuve de GitHub.
Cuando presiono ejecutar en Visual Studio, todo se cumple y se abre una nueva ventana del navegador con el siguiente error:
CS1980: No se puede definir una clase o miembro que utilice ''dinámico'' porque el compilador requirió el tipo ''System.Runtime.CompilerServices.DynamicAttribute''
La sección del compilador en la misma ventana, muestra el siguiente error:
Revisé en google y parece ser el mismo error.
Este tipo estaba usando un tipo dinámico, por otro lado, no estoy usando ningún tipo dinámico, esto está siendo generado automáticamente por el compilador de .NET, y estoy usando .net 4.5, que debería tener soporte para dinámica.
Traté de aplicar la misma solución (cambiar todas las referencias de System.Core a 4.0) pero el hecho es que todas ellas ya son de la versión 4.0.
¿Tienes alguna idea de cómo podría resolver esto?
Agregando una referencia a System.Dynamic.Runtime
hizo por mí.
Recibí este error de repente un par de días después de actualizar a VS2015.3 usando la aplicación MVC "tradicional" (no una nueva aplicación .NET Core / vNext).
Resulta que este error puede ser un completo hechizo .
Asegurarse:
- No tienes ningún otro error en absoluto
- Ha consultado la ventana de resultados para ver si hay errores que no se muestran en la ventana ''Salida''.
- Asegúrate de no tener ninguna referencia conflictiva
En mi caso, tuve un error mecanografiado que estaba causando un error y por alguna razón también desencadenó este extraño error dinámico de ''arenque rojo''.
Mi solución fue ingresar al archivo .csproj
y actualizar la versión de las herramientas de mecanografía a 1.8 (necesito descargar el proyecto y editarlo a mano). Como dije, esto no está relacionado con el error, pero menciono los detalles porque alguien más puede terminar con el mismo problema.
Creo que 1.7 no aceptó ''Ninguno'' para el sistema de módulo de texto mecanografiado, mientras que 1.8 lo hace, de ahí el error.
Tuve el mismo problema, pero ninguna de las respuestas lo resolvió, pero me indicó la dirección correcta. Creo que no actualicé la versión de .NET en mi máquina a la más nueva. Después de instalarlo, retrotraí el framework objetivo (como se sugirió), reorienté el marco más nuevo e hice algunas cosas adicionales también:
Reinstaló TODOS los paquetes ejecutando esto en el administrador de paquetes:
update-package -reinstall
También comparé mi proyecto con uno que funcionaba para 4.5 e hice esto:
- Abrí mi archivo de proyecto y eliminé todos los elementos relacionados con "BCL".
- Desinstalado todos los paquetes "BCL" en el administrador de paquetes NuGet para el proyecto (¿supongo que no es necesario pasar a 4.5 + ...?)
- Se eliminó una versión del paquete anterior de
System.Net.Http
, que no se actualizó por algún motivo (consulte web.config - las versiones deben mostraroldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"
). - Tiene que reiniciar VS.
- Reconstruir la solución.
- El error ahora se ha ido. ;)
Otra cosa que hice para resolver algunos otros errores fue borrar la memoria caché del componente eliminando todos los archivos aquí:
C:/Users/{USERNAME}/AppData/Local/Microsoft/VisualStudio/14.0/ComponentModelCache/
[rant] Perdió todo un día con todo esto. Gracias a MS por robar un día más de mi vida arreglando problemas sin sentido que nunca deberían ser. Cada vez que actualizo siempre recibo una sorpresa maravillosa, y un juego encantador de arreglar el arenque rojo. ¿No estaría de más detectar estos conflictos para aquellos que actualizan proyectos antiguos? Quizás mejores rastros de error cuando las cosas van mal? Dudo que sea tan difícil. Tal vez incluso algo así como AsmSpy, pero más avanzado, integrado en VS? [/despotricar]
Un poco más tarde, pero de todos modos para aquellos que aún enfrentan este problema. Mi solución fue corregir la versión de MVC en web.config en la carpeta Vistas. Por ejemplo, el proyecto hizo referencia a la versión 5.2.2.0 del conjunto MVC, pero en el archivo Views / web.config era la versión 5.2.4.0 (ver imagen).
Tuve un error similar en un proyecto que estaba tratando de migrar. Intente volver a orientar el marco del proyecto hacia atrás una o dos versiones, y una vez que encuentre una versión de destino donde no obtenga el error, vuelva a orientarlo a la versión con la que originalmente tuvo problemas.
Obtuve el mismo error en un proyecto de sitio web apuntado para 4.6.2 que hacía referencia a algunas bibliotecas antiguas, lo redirigí de nuevo a 4.5.1 y eso resolvió el error. Inmediatamente volví a dirigirme a 4.6.2 y no volví a encontrar el error.