net mvc ejemplo curso asp c# asp.net-mvc

ejemplo - mvc c#



Se produjo un error de "error de compilación del miembro requerido" varias veces sin casi ningún cambio en el código (11)

Hoy después de implementar algunos cambios en un sitio C # MVC que corro, volví para hacer algunas modificaciones más y encontré este error:

Falta el compilador requerido miembro System.Runtime.CompilerServices.ExtensionAttribute..ctor

El error es un poco vago (aparte de su descripción, obviamente) ya que no me da un archivo, línea o columna para referenciar, solo el proyecto. Además, arroja el error un total de 20 veces. Solo hice tres cambios al código entre el momento en que implementé (era completamente funcional en ese momento) y ahora. Revertí mis cambios y sigue arrojando el mismo error que no tiene sentido para mí.

No he encontrado mucha información sobre este error en SO o Google, aparte de esta solución de chicos y un par de referencias a algunos errores del proyecto Mono (no estoy usando Mono). La solución que ofrece el tipo anterior requiere agregar una definición de clase que permita al compilador resolver la referencia. En particular, no quiero hacer esto porque no he tenido que hacerlo hasta este momento y eso me ensuciará el código.

Sólo curiosidad si alguien se ha encontrado con esto antes. ¡Gracias por adelantado!


El error real proviene del hecho de que su ensamblado 2.0 que causa el error contiene este código:

namespace System.Runtime.CompilerServices { public class ExtensionAttribute : Attribute { } }

El código anterior permite que el ensamblado .NET 2.0 use métodos de extensión (consulte ¿Cómo usar los métodos de extensión en .NET 2.0? ). Si bien confunde al compilador si se dirige a .NET 4.0 y hace referencia a una Asamblea 2.0 (que contiene el código anterior), ya que mscorlib.dll (4.0) contiene la misma clase en el mismo espacio de nombres.

Arreglé esto

  • compilando el ensamblado original 2.0 nuevamente sin el atributo de orientación 4.0
  • quitando el conjunto (obviamente)
  • agregando un tercer atributo de extensión en el objetivo que compila (parece anular las definiciones a las que se hace referencia)

En mi caso, fue porque el proyecto no hacía referencia a Microsoft.CSharp. Una vez que agregué una referencia a ese ensamblaje, compiló muy bien.


Escribir este código en algún lugar de su proyecto puede resolver su problema. Esto funciona para mi

namespace System.Runtime.CompilerServices { public class ExtensionAttribute : Attribute { } }


Este error generalmente significa que su proyecto compila contra .NET 2.0 o que no está haciendo referencia a la versión correcta de System.Core.dll

Para una pregunta casi duplicada, consulte Error al usar métodos de extensión en C #


Llegué al mismo conjunto de excepciones después de agregar algunos métodos de sincronización a un proyecto de winforms. Necesitaba topar mi versión .NET de 4 a 4.5


Me encontré con esta situación también hoy. En mi caso, estaba haciendo referencia a Newton.Json.Net dll v3.5 en mi aplicación .NET 4.0. Me di cuenta de que ni siquiera estaba usando esta biblioteca, así que una vez que la eliminé de mis referencias, ya no me dio el error del compilador.

¡¡¡Problema resuelto!!!


NLog.dll 2.0 referenciado desde un proyecto .NET 4.0 puede causar esto también.


No tengo una solución correcta, pero añadiré mi punto de datos:

En mi caso, el error es causado al hacer referencia a GoogleSearchAPINet20

Esto es lo que sucede:

  • Cerré la solución que construye
  • Abro la solución nuevamente. Aún construye
  • En cuanto hago algún cambio e intento crear, obtengo 19 errores de "miembro requerido por el compilador no encontrado ..."
  • Elimino la referencia a GoogleSearchAPINet20
  • Agregué la referencia a GoogleSearchAPINet20
  • Construyo la solución. Se construye sin errores
  • Ahora puedo realizar cambios de código, crear o realizar cualquier otra acción con la solución correctamente siempre que mi Visual Studio esté abierto
  • Cierro Visual Studio
  • Repita desde el paso uno

No estoy haciendo referencia a System.Core.dll en mi solución en absoluto y mi marco de destino es .NET 4.

Estoy un poco molesto en este punto ...


Obtuve este error al intentar usar tareas asincrónicas contra .NET 4.0. La actualización de Target Framework a 4.5.2 solucionó el problema.


Para mí, el problema ocurre cuando agrego el método asíncrono con async ¡Tarea esperando en mi proyecto .net4.0!

Con versiones anteriores de .NET-Framework 4.5, debe instalar este paquete:

Install-package Microsoft.Bcl.Async –pre

o

Install-Package Microsoft.CompilerServices.AsyncTargetingPack

más información sobre Nuget o Nuget


No sé si alguien más ha experimentado esto, pero de repente lloveré sobre este error después de agregar un código utilizando tipos dynamic e incorporar WebAPI en un proyecto que se originó como una aplicación de TypeScript en VS2013. Simplemente agregando una referencia a Microsoft.CSharp resolvió mi problema.

Espero que esto ayude a alguien más.