viernes, enero 03, 2014

Visual C# 2008 - Error al depurar variables locales (Win7, Net 2.0, 64 bits)

Estuve batallando con un código en C# 2008 Express Edition (apuntando al .NET Framework 2.0) en el que tenía unas variables locales que no podía depurar (leer su contenido) en el IDE de Visual Studio. El problema que aparecía en la ventana es el siguiente:

No se puede evaluar la expresión porque un subproceso está detenido en un punto en el que la recolección de elementos no utilizados no es posible, quizás debido a que el código está optimizado.

Da click en la imagen para verla completa.


Buscando en línea, no encontré mucho, porque el texto está en español y pues en español hay poca suerte con este tipo de problemas. Lo traduje pero nunca encontré la traducción exacta y mejor le busqué yo.

Resulta que cuando uno está trabajando con C# 2008, el .NET Framework 2.0, una máquina de 64 bits y Windows de 64 bits (Win 7 Home Premium en mi caso), el depurador se pone tonto y se le van las cabras.

Para corregirlo:

+ Click en Herramientas, click en Opciones...



+ Click en Mostrar todas las configuraciones
+ Luego click en la categoría de Proyectos y soluciones y habilita Mostrar configuraciones de compilación avanzadas



+ Da click en Aceptar
+ Ahora en el IDE aparecerán opciones de compilación nuevas:


+ Selecciona Release y en Any CPU selecciona Administrador de configuración...
+ En la pestaña de Plataforma selecciona Any CPU y dale
+ Busca la opción de x86, para que tu código funcione en modo 32 bits.

Y listo, corre tu programa y si tenías el mismo problema que yo, entonces ya habrá quedado resuelto y podrás depurar tus variables como siempre.