c# - una - no se puede establecer el punto de interrupcion
El punto de interrupción no será alcanzado actualmente. No se han cargado símbolos para este documento en una aplicación de Silverlight (30)
Ok lo que tengo
Visual Studio 2010 RC, W7 x64, inició un nuevo tipo de proyecto de aplicación Silverlight. Alojar la aplicación Silverlight en un proyecto de aplicación web ASP.NET. Versión Silverlight 3.0. Se agregó una clase LinqToSQL, un servicio WCF, una aplicación Winform Tester (proyecto en la solución) y algunas clases (también como proyectos en la solución).
Ayer, de repente obtuve el ''El punto de interrupción no será alcanzado actualmente. No se han cargado símbolos para este documento. Mensaje para que aparezca en el IDE, pero solo afecta a la aplicación web, puedo depurar la aplicación Silverlight y la aplicación Winform.
Lo que intenté / hice para deshacerme del mensaje:
- Restablecer la configuración de Visual Studio
- eliminó todos los archivos en cada / Carpeta de archivos temporales de ASP.NET (hay uno para cada 32bit / 64bit y para Framework 2.0 y 4.0)
- Intenté depurar utilizando el servidor web integrado de Visual Studio: normalmente uso IIS, en el resultado del proyecto de la solución eliminé todas las carpetas de obj y bin en cada carpeta de proyecto
- creó una nueva solución y agregó todos los proyectos a esta nueva solución
- eliminado el archivo suo solución
- creó una nueva aplicación web ASP.NET para probar si se trata de un problema de instalación de VS => Puedo depurar este nuevo proyecto / solución
- reinició la máquina varias veces
- reparado la instalación vs.net
- hice un IISReset
- eliminado la aplicación web de IIS
- usó el botón Crear directorio virtual en Propiedades del proyecto de la aplicación web para crear una nueva aplicación web en IIS
- Cambió la versión de marco de cada proyecto de 3.5 a 4.0.
- Abrí la solución en mi segunda máquina => mismo comportamiento
- Microsoft Connect rastreado por errores / problemas similares
- PASADO 7 HORAS.
Entonces, esto sucede la segunda vez en mi vida. la última vez que lo resolví eliminando la carpeta de archivos temporales de ASP.NET, pero esta vez necesito su ayuda.
Abra la URL de la aplicación web desde el navegador y luego en el IDE de VS.Net use Herramientas -> Adjuntar para procesar
luego adjuntar a aspnet_wp.exe.
El depurador comenzará a trabajar
Acabo de resolver este problema de acuerdo con la implementación de aplicaciones de Silverlight . (Esta respuesta es un duplicado de algunos otros, pero intentaré explicarlo más a fondo).
El problema es más probable que su aplicación Silverlight no se esté implementando correctamente en su aplicación web en la compilación / inicio. Este es un problema de referencia: es fácil de entender pero no es obvio la primera vez que lo encuentra.
Al igual que cualquier otra referencia de proyecto, la salida del proyecto de referencia debe copiarse en la carpeta bin del proyecto de referencia para poder realizar la depuración. Para las bibliotecas de clases, esto sucede cuando hace clic con el botón derecho y selecciona ''Agregar referencia ...''. Para Silverlight, debe agregar una referencia a través de Propiedades del proyecto.
- Haga clic derecho en su proyecto y seleccione ''Propiedades''
- Seleccione la pestaña ''Aplicaciones de Silverlight'' a la izquierda
- Presione el botón ''Agregar ...'' y seleccione su proyecto de Silverlight en el cuadro de diálogo
Esto agrega una referencia a la aplicación Silverlight desde su aplicación web de alojamiento y garantiza que el archivo xap
se copiará en la aplicación web en la compilación o implementación. Eso significa que la aplicación Silverlight actual y sus archivos de depuración se encuentran dentro de la aplicación que se está depurando, y podrá pasar por el código.
Asegúrese de que está ejecutando su programa en el modo DEBUG y no en el modo RELEASE.
Bien, aquí vamos
(En una "aplicación de Silverlight": primero verifique que Silverlight esté en "web" en las "propiedades" del proyecto de su servidor: si eso no lo resolvió, intente esto a continuación)
La primera vez que haga: ejecute esto primero: devenv.exe / ResetSettings y 1: En el menú superior, haga clic en la etiqueta de depuración 2: haga clic en las opciones y configuraciones 3: En "depuración" y en "general" busque "habilitar. 4: Marque la casilla. 5: Y ahora todos los símbolos serán descargados y reconfigurados :)
Si vuelve a suceder después de lo anterior, simplemente borre la carpeta donde están los símbolos:
1: en el menú superior, haga clic en la etiqueta de depuración 2: haga clic en las opciones y configuraciones 3: en "depuración" y en "símbolos", busque el botón "caché de símbolos vacío" y haga clic en él.
Cada vez que he tenido este error en particular, resulta que la carpeta desde la que Visual Studio está cargando ensamblajes es diferente de la carpeta desde la que se ejecuta la aplicación web.
Es decir, el servidor de aplicaciones está ejecutando la aplicación desde
C:/dev/MyApplication/bin
pero Visual Studio está depurando desde
C:/dev/MyOtherApplication/bin (or something along those lines, anyway).
Nota: por varias razones, hago mi depuración con IIS como el host de la aplicación en lugar del gitmo independiente que usa la mayoría de la gente. ¡Esto podría influir en la utilidad de mi respuesta!
Actualización :
Para IIS, el directorio del servidor de aplicaciones (es decir, C:/dev/MyApplication
anterior) es el directorio físico configurado para la aplicación web; esto se puede controlar cambiando la configuración básica de la aplicación.
Para Visual Studio, el directorio de depuración (es decir, C:/dev/MyOtherApplication
anterior) es el directorio en el que se encuentran sus archivos svc
, generalmente el mismo directorio que su archivo de proyecto csproj
.
El escenario es el siguiente: un proyecto en particular es su proyecto de inicio (por ejemplo, tiene el método Principal). Ese proyecto está haciendo referencia a otros proyectos en su solución. Los puntos de ruptura en los otros proyectos no se ven afectados.
Solución rápida: cuando construya su solución, busque en la ruta de salida de compilación (generalmente bin / Debug) para el proyecto de inicio. Mire los archivos DLL y PDB para los proyectos a los que hace referencia. Asegúrese de que la fecha de su última modificación sea la fecha en que construyó su solución por última vez. Si no lo están, cópielos desde la ruta de salida de compilación para cada proyecto en sus proyectos de inicio. Ruta de salida de compilación. Por ejemplo:
Proyecto A tiene Main. Hace referencia al Proyecto B. No se están alcanzando sus puntos de interrupción en el Proyecto B. Copie el archivo DLL y PDB de la ruta de salida de compilación del proyecto B a la ruta de salida de compilación del proyecto A. Entonces ejecuta tu solución. Ahora se alcanzará el punto de quiebre.
Ahora necesita averiguar por qué el Proyecto A no está copiando los archivos DLL y PDB del Proyecto B. Las respuestas aquí cubren la mayoría de los escenarios. Un escenario que no se ha tocado es asegurarse de que sus proyectos y soluciones estén vinculados a TFS correctamente. Tuve algunos proyectos vinculados y algunos no vinculados correctamente. Eso me causó el problema. Una vez que solucioné eso, el problema desapareció y ya no tuve que copiar los archivos DLL y PDB.
El motivo por el que se enfrentó es que los PDB ("PDB" significa "Base de datos del programa", un formato de archivo patentado (desarrollado por Microsoft) para almacenar información de depuración de un programa) no están actualizados, esto puede deberse a algunas razones. :
1- Como dijo Bevan, ¡puedes estar depurando otra aplicación!
2- Estás depurando otra versión de la misma aplicación. Por ejemplo, adjuntó una aplicación creada anteriormente con la versión actual del código para la depuración sin (re) construirla.
Limpiar o reconstruir la solución resuelve esos problemas para mí.
Para asegurarse de que el problema no sea suyo, intente depurar la misma aplicación con VS 2008 (me temo que puede haber un error en VS 2010, ¡todavía es beta!).
El problema para mí resultó ser que las casillas de verificación Propiedades-> Construir-> Optimizar código se habían activado en la configuración de depuración. Se apagó, se reconstruyó y la depuración funcionó normalmente.
Este error surge de vez en cuando para mí y siempre puedo rastrearlo hasta la configuración del proyecto para el ensamblaje en cuestión. No tiene que "esperar" hasta que su código no respete un punto de interrupción o hasta que establezca el punto de interrupción, para saber qué ensamblajes tienen símbolos cargados.
Cuando ejecute un proyecto en modo de depuración, mostrará en la ventana de Salida qué ensamblajes tienen los símbolos cargados como se muestra a continuación (Es posible que deba abrir la imagen en una nueva pestaña): T
Entonces, en este caso, BASD.Core.Data.dll NO tiene símbolos cargados. Entonces, puede comparar la configuración del proyecto para este conjunto con la de otro conjunto que logró cargar símbolos, para averiguar por qué algunos lo hacen y otros no cargan símbolos.
"Para mí", sin embargo, "cada" vez que esto sucede es porque la información de depuración no se está creando. Así que abro Propiedades de proyecto> Generar> Avanzado en un proyecto (C #).
Así que para Basd.Core.Data.dll anterior, es decir, sin símbolos, la configuración avanzada de compilación fue:
Mientras que para Basd.Core.Configuration.dll, es decir, un ensamblaje donde podría establecer y alcanzar un punto de interrupción, la configuración fue:
Así que estoy dando información de depuración en el último proyecto y no en el primero, por lo tanto, mi capacidad para alcanzar el punto de ruptura en Basd.Core.Configuration.dll
También tenga en cuenta que no es suficiente tener simplemente un archivo .pdb en la carpeta bin de un proyecto para un archivo .dll dado, ya que puede estar desactualizado y, por lo tanto, Visual Studio no lo puede seleccionar como un archivo de símbolos válido para el archivo. estás tratando de pasar a través de
También tenga en cuenta que cambiar las configuraciones de compilación puede cambiar la configuración de la información de compilación y de dónde se extraen los símbolos.
(En este caso, me doy cuenta de que estoy en modo Release pero el método sigue siendo válido)
Haga clic derecho en la solución -> Propiedades
Busque en Propiedades comunes -> Proyecto de inicio
Seleccione múltiples proyectos de inicio
Seleccione Iniciar acción en los proyectos que necesita depurar.
Intenté cambiar el nombre del archivo .pdb
en la carpeta obj/debug
e hice una solución limpia y la reconstruí.
Creó un nuevo archivo .pdb
y pude alcanzar los puntos de interrupción correctamente.
Intente configurar Silverlight Application Project como un proyecto de inicio: haga clic con el botón derecho en el proyecto -> ''Establecer como proyecto de inicio. Luego presione F5 y vea si puede atrapar puntos de interrupción ...
Intente eliminar los datos de navegación / temperatura en su navegador cada vez que realice cambios en la aplicación Silverlight
Ir a Propiedades del proyecto -> Construir -> Avanzado ...
En la sección "Salida", seleccione "completo" en el menú desplegable Información de depuración
Las soluciones al mismo problema en mi caso fue la siguiente combinación de pasos:
- Solución -> Propiedades Seleccione varios proyectos de inicio seleccione Iniciar acción en los proyectos que necesita depurar.
- Se eliminó el servicio de Referencias de servicio y se limpió la solución.
- Reconstruir el proyecto de servicio
- Agregado de nuevo a las referencias de servicio
- Limpia la solución y reconstrúyela.
Otra anécdota que podría ser útil.
Encontré este problema cuando uno de mis proyectos estaba usando referencias de archivos de una carpeta de salida de la versión. Cuando los resultados de la compilación se colocaron en una carpeta de Mercancías, estas dlls de versión sobrescribieron las dlls de depuración.
La solución fue asegurarse de que en el archivo csproj, el HintPath de mi referencia era
<HintPath>../../Core/Goods/$(Configuration)/MyFramework.dll</HintPath>
y no
<HintPath>../../Core/Goods/Release/MyFramework.dll</HintPath>
Para aquellos que leen Visual Studio 2008, no Visual Studio 2010 y están recibiendo este error. Las respuestas anteriores no me ayudaron en esta situación, así que estoy compartiendo mi experiencia.
Si está depurando una aplicación web de IIS en Visual Studio 2008 adjuntando al proceso w3wp.exe en lugar de usar el servidor de desarrollo ASP.NET para la depuración (comience con la depuración), este podría ser su problema:
Es posible que Visual Studio aún haga referencia a un archivo de símbolos (archivo utilizado durante la depuración) de su dll desde un proceso de IIS que está desactualizado. Y ese archivo de símbolos ha sido recreado por una compilación de código fuente de .NET pero el proceso de IIS todavía hace referencia al archivo de símbolos anterior.
Arreglar:
Simplemente detenga la depuración en Visual Studio, reinicie la aplicación web y vuelva a adjuntar al proceso. Luego, los puntos de interrupción deben cambiar de amarillo (cuando vea este error) a rojo nuevamente.
========================
Más cosas para probar (encontré una nueva situación hoy):
Haga cada una de las viñetas en el enlace de abajo UNA A LA VEZ, pero repita mis pasos a continuación con cada una que pruebe.
1.) Detener la depuración (presione el icono del cuadrado rojo) en Visual Studio
2.) Solución limpia
3.) Construir Solución
4.) [INSERTAR LA INSTRUCCIÓN DEL BOLETÍN AQUÍ]
5.) Herramientas> Adjuntar al proceso (o comenzar con la depuración)
6.) Inicie el programa al que está adjuntando y ejecútelo de modo que su código sea afectado.
6 explicaron:
Si se adjunta a nunit.exe, abra NUnit y ejecute una prueba para que su punto de interrupción sea alcanzado
Si se adjunta a w3wp.exe (sitio de IIS), abra su sitio en el navegador y vaya a la página que llegará a su punto de interrupción
EDITAR:
Hoy noté que si intentas depurar un proyecto que no está configurado como el proyecto de inicio, se mostrará esto. Cuando se adjunta a su proceso w3wp.exe, cree que su depuración en el proyecto se establece como el proyecto de inicio. Para resolverlo, simplemente haga clic derecho en el proyecto de la aplicación web y seleccione "Establecer como proyecto de inicio". A continuación, intente volver a adjuntar a su proceso.
Para mí, el problema era que tenía "Optimización de código" habilitado en la pestaña Generar de la configuración de mi proyecto.
Para mi aplicación WPF, eliminé la carpeta de la aplicación, volví a "Obtener lo último" del control de origen y la reconstruí. Todos los puntos de ruptura funcionan muy bien ahora.
Para solucionar este problema en Web.config, solo tuve que agregar debug="true"
<system.web>
<compilation targetFramework="4.0" debug="true">
Lo que me ayudó a encontrar esta solución ha sido buscar en las ventanas de los Módulos mientras realizaba la depuración y vi que, para mi ASP.NET DLL cargado, tenía: Binary no fue creado con información de depuración.
Si está depurando un proyecto web, asegúrese de que el atributo debug = "true" se haya establecido en su archivo web.config:
<system.web>
<compilation debug="true" .../>
Tuve el mismo problema en Windows 7 y probé todo : limpié los archivos DLL, investigé la lista de los módulos, desactivé "Just My Code", y así sucesivamente.
El problema se resolvió después de haber ejecutado Visual Studio "como administrador". Honestamente. ¿Por qué Microsoft no pudo simplemente advertirme que no se está ejecutando "como administrador"? Me ahorraría algunas horas de trabajo.
Tuve el mismo problema pero en VS2013 para una aplicación web. Para mí, la respuesta fue actualizar la configuración de compilación para la solución:
- Haga clic derecho en la Solución y elija Propiedades
- Seleccione la configuración de depuración
- Seleccione "Configuración" en "Propiedades de configuración" en el trivet
- Marque la casilla "Crear" para cada proyecto que quiera depurar
Una vez que hice esto, todos mis puntos de interrupción comenzaron a funcionar.
Tuve el mismo problema y, después de buscar en Google, encontré dos soluciones típicas para esto:
Asegúrese de que el depurador de Silverlight esté activado en el proyecto .Web. Abra las propiedades del proyecto y seleccione el depurador de Silverlight en la pestaña "Web".
Reinicie Visual Studio y elimine todas las carpetas bin y obj.
Pero ninguno de estos funcionó para mí . Entonces, alguien mencionó un hilo para probar a usar IE como navegador. ¡Esto hizo que la depuración y los puntos de interrupción funcionaran de nuevo!
Editar:
Más tarde he luchado con IE9 que no funciona, porque se adjunta al proceso incorrecto. En lugar de adjuntarme manualmente al proceso de IE correcto cada vez, encontré un buen trick :
- Haga clic derecho en una de las páginas generadas en el proyecto .Web (.html o .aspx)
- Haga clic en "Buscar con ..."
- Establecer IE como navegador predeterminado (solo afectará la elección del navegador de Visual Studio)
Ahora, Visual Studio lanzará IE cuando ejecute el proyecto .Web y se adjuntará al proceso correcto. Deberias hacer eso.
Tuve el mismo problema, estaba depurando mi proyecto y tuve que hacer clic derecho en el proyecto y seleccionar "nueva instancia de depuración". Solo necesitaba hacer esto una vez, luego de eso funcionó como normal.
Tuve el mismo problema: perdí mucho tiempo intentando que la depuración funcionara en Visual Studio.
Terminó siendo Nuget, tenía 3 versiones de Newtonsoft.Json (en 7 proyectos C #). La solución se compilaría pero no se podía depurar.
Solucioné el problema ejecutando lo siguiente en la Consola del Administrador de paquetes de Nuget:
PM> Update-Package Newtonsoft.Json
Tuve este mismo problema cuando en un cliente donde, para cada solución de aplicación, copiaron la mayoría de los ensamblados compartidos en una carpeta de " Referencias ", luego los agregaron a la solución como " elementos de la solución " y como un " Proyecto " dentro de la solución.
Aún no estoy seguro de por qué, pero algunos de ellos se podían depurar, otros no, aunque en la configuración de Referencias para los ensamblajes se especificaron las rutas completas correctas.
Este comportamiento impredecible alomst me volvió loco :)
Resolví esto eliminando todos los ensamblajes de la carpeta " Referencias " para las que había proyectos con código fuente, y manteniendo un buen seguimiento de la información de la versión de los ensamblajes compartidos.
Tuve que desinstalar manualmente todas las instancias de .dll del registro y todas las instancias de .dll de mi disco local. Desinstalé / reinstalé mi aplicación y ahora estoy llegando a puntos de interrupción. Perdí medio día haciendo esto :(.
Tuve un problema similar, excepto que mi problema era tonto: tenía 2 instancias del servidor web incorporado ejecutando bajo 2 puertos diferentes Y tenía mi proyecto -> propiedades -> web -> "Iniciar URL" que apunta a un puerto fijo pero la aplicación web no se estaba ejecutando realmente bajo ese puerto. Así que mi navegador estaba siendo redirigido a la "URL de inicio" que se refería a 1539 pero la instancia de código / depuración se estaba ejecutando bajo el puerto 50803.
Cambié el servidor web incorporado para que se ejecute bajo un puerto fijo y ajusté mi "URL de inicio" para usar ese puerto también. proyecto -> propiedades -> web -> sección "Servidores" -> "Usar Visual Studio Development Server" -> puerto específico
Tuvo el mismo problema
Por alguna razón, una de las DLL se registró en el GAC, por lo que siempre tuvo una versión diferente a la del código.
Una vez que lo quité del GAC, el problema se resolvió