visual ver tutorial studio para descargar depurar consola configurar como code c# debugging visual-studio-2015

ver - visual studio c# tutorial



"Error interno en el evaluador de expresiones" (8)

En mi caso, estaba tratando de evaluar la expresión lambda en la Lista <> y tuve ese error ("Error interno en el evaluador de expresiones"). Estaba usando VS2015, por lo que se permitieron las expresiones lambda. Resulta que el evaluador de expresiones carecía de la biblioteca Linq. yo añadí

using System.Linq;

a mi clase actual y voilà! Lambda evaluado.

Me encontré con un problema en el evaluador de expresiones de Visual Studio 2015 que dice "Error interno en el evaluador de expresiones", después de algunas investigaciones descubrí que esto es causado por un ensamblaje que se carga utilizando la reflexión. Este ensamblado no arrojaría ninguna excepción, pero después de eso, el evaluador de exp fallará. Este no es el único ensamblaje que cargo, hay algunos buenos que funcionan que no influyen en el evaluador.

Para superar este problema, tuve que verificar ''Menú> opciones> depuración> Usar modo de compatibilidad administrada'' pero esto deshabilita la función ''Editar y continuar'', ¿qué puedo hacer?

Propiedades del ensamblador causal:

  • su nombre es el mismo que el ensamblado principal (cambié su nombre pero no pasó nada)
  • Todos mis proyectos están usando dotNet 4.5
  • Todos los espacios de nombres raíz son iguales (todos los ensamblados lo son)

¡Gracias!


En mi caso, tenía 2 mismos archivos dll en 2 carpetas diferentes (parece que un dll no era correcto). Eliminar el .dll y reconstruir la solución resolvió mi problema.


Encontré el error "error interno en el evaluador de expresiones" cuando estaba depurando en modo de liberación en lugar de en modo de depuración. Lo cambié a Release cuando publiqué en producción y olvidé volver a cambiarlo a Debug.


Eso suena como un error en el evaluador de expresiones. Para una mejor solución, en lugar de marcar "Usar modo de compatibilidad administrada", marque "Usar los evaluadores de expresiones de C # y VB heredados". Esto debería permitirle continuar usando Editar y continuar, así como otras características agregadas en las últimas versiones.

En términos del "Error interno en el evaluador de expresiones", ¿puede abrir un problema yendo a Ayuda -> Enviar comentarios -> Informar un problema? Eso nos ayudará a solucionar el problema en futuras versiones.


Para mí, la opción "Usar modo de compatibilidad administrada" funcionó. También estaba viendo signos de interrogación al pasar el mouse sobre variables, en lugar de propiedades y valores


Resolví este problema simplemente restableciendo la configuración de mi estudio visual yendo a: Herramientas-> Importar y exportar configuración y seleccionando restablecer la configuración predeterminada


Solo extendiendo la solución provista por Patrick Nelson . Para Visual Studio 2015+ según lo solicitado, los pasos son los siguientes.

Vaya a Herramientas -> Opciones

y aquí, en Opciones, seleccione Depurar -> General y desplácese hacia abajo para encontrar la ... expresión C # heredada ... opción:

Se proporciona más información aquí:

Cambio al modo de compatibilidad gestionada

Nota: También hay algunos inconvenientes serios que ocurren al cambiar al modo heredado. Especialmente Runtime Reflection de las interfaces implementadas se vuelve casi imposible o extremadamente inconveniente. También hay otros métodos de reflexión que arrojarán errores.


Verifique su uso del atributo [DebuggerBrowsable] ; Encontré un caso mínimo en VisualStudio 2017 15.5 y lo publiqué here .

En este caso particular, el bloqueo del evaluador de expresiones (EE) aparece relacionado con el atributo [DebuggerBrowsable] aplicado a una propiedad que anula un campo del mismo nombre. Esto representará un porcentaje de los casos que las personas están experimentando, pero no hay forma de saber cuántos se deben a este problema específico hasta que se solucione.

El ejemplo de demostración completo y completo se muestra en la imagen (y se incluye a continuación para una buena medida)

Copia legible por máquina del código en la imagen:

using System; using System.Diagnostics; class Program { static void Main() => new _derived(); } abstract class _base { [DebuggerBrowsable(DebuggerBrowsableState.Never)] public Object trace; }; class _derived : _base { public _derived() => Debugger.Break(); // <-- vs2017 EE crash when stopped here [DebuggerBrowsable(DebuggerBrowsableState.Never)] new public Object trace => base.trace; }