Ok, lo que tengo:
Visual Studio 2010 RC, W7 x64, inició un nuevo tipo de proyecto de aplicación Silverlight. Hospedar la aplicación Silverlight en un proyecto de aplicación web ASP.NET. Silverlight versión 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 recibí el 'El punto de ruptura no se alcanzará actualmente. No se han cargado símbolos para este documento. mensaje que aparece en el IDE, pero solo afecta a la aplicación web, puedo depurar Silverlight y la aplicación Winform.
Lo que intenté / hice para deshacerme del mensaje:
- Restablecer configuración de Visual Studio
- eliminó todos los archivos en cada carpeta de archivos temporales de ASP.NET (hay uno para cada 32 bits / 64 bits y para Framework 2.0 y 4.0)
- intenté depurar usando el servidor web integrado de Visual Studio; normalmente uso IIS, en la salida del proyecto de la solución eliminé todas las carpetas obj y bin en cada carpeta de proyecto
- creó una nueva solución y agregó todos los proyectos a esta nueva solución
- eliminó el archivo suo de solución
- creó una nueva aplicación web ASP.NET para probar si se trata de un problema de instalación VS => Puedo depurar este nuevo proyecto / solución
- reinició la máquina varias veces
- reparó la instalación de vs.net
- hizo un IISReset
- eliminó 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
- rastreó Microsoft Connect 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 temporal de archivos ASP.NET, pero esta vez necesito tu ayuda.
Respuestas:
Haga clic derecho en la solución -> Propiedades
Busque en Propiedades comunes -> Proyecto de inicio
Seleccionar múltiples proyectos de inicio
seleccione Iniciar acción en los proyectos que necesita depurar.
fuente
Tuve el mismo problema y después de buscar en Google encontré dos soluciones típicas para esto:
Asegúrese de que el depurador Silverlight esté activado en el proyecto .Web. Abra las propiedades del proyecto y seleccione el depurador Silverlight en la pestaña "Web".
Reinicie Visual Studio y elimine todas las carpetas bin y obj.
Pero ninguno de estos funcionó para mí . Luego, alguien mencionó un hilo para intentar usar IE como navegador en su lugar. ¡Esto hizo que la depuración y los puntos de interrupción volvieran a funcionar!
Editar:
Más tarde he tenido problemas con IE9 que no funciona, porque se adjunta al proceso incorrecto. En lugar de adjuntar manualmente al proceso IE correcto cada vez, encontré un buen truco :
Ahora, Visual Studio iniciará IE cuando ejecute el proyecto .Web y se adjuntará al proceso correcto. Deberias hacer eso.
fuente
Cada vez que aparece este error en particular, resulta que la carpeta desde la que Visual Studio está cargando ensamblados es diferente de la carpeta desde la que se ejecuta la aplicación web.
Es decir, el servidor de aplicaciones ejecuta la aplicación desde
pero Visual Studio está depurando desde
Nota: por varias razones, realizo mi depuración con IIS como el host de la aplicación en lugar del pequeño artilugio independiente que la mayoría de la gente usa. ¡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
arriba) es el directorio físico configurado para la aplicación web; esto puede controlarse cambiando la configuración básica de la aplicación.Para Visual Studio, el directorio de depuración (es decir,
C:\dev\MyOtherApplication
arriba) es el directorio en el quesvc
se encuentran sus archivos, generalmente el mismo directorio que elcsproj
archivo de su proyecto.fuente
El problema para mí resultó ser que la casilla de verificación Propiedades-> Compilar-> Optimizar código se había activado en la configuración de Depuración. Lo apagué, reconstruí y la depuración funcionó normalmente.
fuente
La razón por la que te enfrentaste es que los PDB ("PDB significa Program Database, un formato de archivo propietario (desarrollado por Microsoft) para almacenar información de depuración sobre 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) compilarla.
Limpiar o reconstruir la solución me resuelve estos problemas.
Para asegurarse de que el problema no sea suyo, intente depurar la misma aplicación con VS 2008 (me temo que puede ser un error en VS 2010, ¡todavía es beta!).
fuente
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ó normalmente.
fuente
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é conjuntos tienen símbolos cargados.
Cuando ejecute un proyecto en modo de depuración, en la ventana Salida aparecerá una lista de los ensambles que tienen 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 ensamblaje con la de otro ensamblado que logró cargar símbolos, a fin de averiguar por qué algunos cargan y otros no cargan símbolos.
"Para mí", sin embargo, "cada" vez que esto sucede es porque no se está creando la información de depuración. Entonces abro Propiedades del proyecto> Construir> Avanzado en un proyecto (C #).
Entonces, para Basd.Core.Data.dll anterior, es decir, sin símbolos, la configuración de compilación avanzada fue:
Mientras que para Basd.Core.Configuration.dll, es decir, un ensamblaje donde podía establecer y alcanzar un punto de interrupción, la configuración era:
Así que estoy generando información de depuración en el último proyecto y no en el primero, de ahí mi capacidad para alcanzar el punto de interrupción en Basd.Core.Configuration.dll
También tenga en cuenta que no es suficiente simplemente tener un archivo .pdb en la carpeta bin de un proyecto para un .dll dado porque podría estar desactualizado y, por lo tanto, Visual Studio no lo recoge como un archivo de símbolo válido para el .dll estás tratando de pasar.
También tenga en cuenta que cambiar las configuraciones de compilación puede cambiar la configuración de información de compilación y de dónde se extraen los símbolos.
(Me doy cuenta de que en este caso estoy en modo Release pero el método aún se aplica)
fuente
Ir a Propiedades del proyecto -> Construir -> Avanzado ...
En la sección "Salida", seleccione "completo" en el menú desplegable Información de depuración
fuente
Asegúrese de ejecutar su programa en modo DEPURACIÓN y no en modo LIBERACIÓN.
fuente
Depurar -> Adjuntar al proceso ->
elija Depurar estos tipos de código: opción ->
seleccione Managed v3.5, v3.0, v2.0 o Managed v4.5, v4.0
fuente
Acabo de resolver este problema de acuerdo con la implementación de aplicaciones de Silverlight . (Esta respuesta es un duplicado de algunas otras, pero intentaré explicarla más a fondo).
El problema es más probable que su aplicación Silverlight no se implemente correctamente en su aplicación web durante 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 referenciado debe copiarse en la carpeta bin del proyecto de referencia para depurar. Para las bibliotecas de clases esto sucede cuando hace clic derecho y selecciona 'Agregar referencia ...'. Para Silverlight, debe agregar una referencia a través de Propiedades del proyecto.
Esto agrega una referencia a la aplicación Silverlight desde su aplicación web de alojamiento y garantiza que el
xap
archivo se copiará a la aplicación web en la compilación o implementación. Eso significa que la aplicación actual de Silverlight y sus archivos de depuración están dentro de la aplicación que se está depurando, y podrá recorrer el código.fuente
Si está depurando un proyecto web, asegúrese de que el atributo debug = "true" se haya establecido en su archivo web.config:
fuente
Tuve el mismo problema en Windows 7 y probé todo : limpié archivos DLL, investigué la lista de módulos, apagué "Just My Code", y así sucesivamente.
El problema se resolvió después de ejecutar Visual Studio "como administrador". Honestamente. ¿Por qué Microsoft no podía avisarme que está no correr "como administrador"? Me ahorraría algunas horas de trabajo.
fuente
Para mí, el problema era que tenía habilitado el "Código de optimización" en la pestaña Construir de la configuración de mi proyecto.
fuente
Tuve el mismo problema
Por alguna razón, una de las DLL estaba registrada en el GAC, por lo tanto, siempre tenía una versión diferente al código.
Una vez que lo eliminé del GAC, el problema se resolvió
fuente
Para aquellos lectores que usan Visual Studio 2008, no Visual Studio 2010 y reciben 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 IIS en Visual Studio 2008 al adjuntar al proceso w3wp.exe en lugar de utilizar el servidor de desarrollo ASP.NET para la depuración (comience con la depuración), este podría ser su problema:
Visual Studio aún puede estar haciendo referencia a un archivo de símbolos (archivo utilizado durante la depuración) de su archivo DLL de un proceso de IIS que no está actualizado. Y ese archivo de símbolos ha sido recreado por una recompilación de código fuente .NET, pero el proceso de IIS todavía hace referencia al antiguo archivo de símbolos.
Arreglar:
Simplemente detenga la depuración en Visual Studio, reinicie la aplicación web y vuelva a adjuntarla al proceso. Luego, los puntos de interrupción deberían pasar de amarillo (cuando vea este error) a rojo nuevamente.
========================
Más cosas para probar (encontró una nueva situación hoy):
Haga cada viñeta en el siguiente enlace UNA A LA VEZ, pero repita mis pasos a continuación con cada una que intente.
http://carnotaurus.philipcarney.com/post/4130422114/visual-studio-debugging-issue-with-files-of-the-same
1.) Detenga la depuración (presione el icono del cuadrado rojo) en Visual Studio
2.) Solución limpia
3.) Solución de compilación
4.) [INSERTE LA INSTRUCCIÓN DE BULLET AQUÍ]
5.) Herramientas> Adjuntar al proceso (o comience con la depuración)
6.) Inicie el programa al que se está adjuntando y ejecútelo de manera que su código se vea afectado
6 explicaron:
Si se adjunta a nunit.exe, abra NUnit y ejecute una prueba para que llegue a su punto de interrupción
Si se conecta a w3wp.exe (sitio IIS), abra su sitio en el navegador y vaya a la página que alcanzará su punto de interrupción
EDITAR:
Hoy me di cuenta de que si intentas depurar un proyecto que no está configurado como proyecto de inicio, lo mostrará. Cuando se adjunta a su proceso w3wp.exe, cree que se está depurando en el proyecto que se establece como proyecto de inicio. Para resolverlo, simplemente haga clic con el botón derecho en el proyecto de aplicación web y elija "Establecer como proyecto de inicio". Luego intente volver a adjuntarlo a su proceso.
fuente
El escenario es este: un proyecto particular es su proyecto de inicio (por ejemplo, tiene el método Main). Ese proyecto hace referencia a otros proyectos en su solución. Los puntos de interrupción en los otros proyectos no están siendo alcanzados.
Solución rápida: cuando cree 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 su última fecha de modificación sea la fecha en que creó su solución por última vez. Si no lo están, cópielos de la ruta de salida de compilación para cada proyecto en su ruta de salida de compilación de proyectos iniciales. Por ejemplo:
El proyecto A tiene Main. Hace referencia al proyecto B. Sus puntos de interrupción no se alcanzan 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. Luego ejecuta tu solución. El punto de quiebre ahora será alcanzado.
Ahora necesita descubrir por qué el Proyecto A no está copiando sobre el archivo DLL y PDB del Proyecto B. Las respuestas aquí cubren la mayoría de los escenarios. Un escenario que no se toca es asegurarse de que sus proyectos y soluciones estén vinculados a TFS correctamente. Tenía algunos proyectos vinculados y otros no vinculados correctamente. Eso me causó el problema. Una vez que lo solucioné, el problema desapareció y ya no tuve que copiar sobre los archivos DLL y PDB.
fuente
La solución al mismo problema en mi caso fue la siguiente combinación de pasos:
fuente
Para solucionar este problema en Web.config, solo tenía que agregar
debug="true"
Lo que me ayudó a encontrar esta solución fue mirar las ventanas de Módulos durante la depuración y vi que para mis archivos ASP.NET DLL cargados tenía: Binary no fue creado con información de depuración.
fuente
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:
Una vez que hice esto, todos mis puntos de interrupción comenzaron a funcionar.
fuente
Bien, aquí vamos:
(En una "aplicación de Silverlight": compruebe primero que Silverlight esté marcado en "web" en las "propiedades" de su proyecto de servidor - Si eso no lo resolvió, intente esto a continuación)
En la primera vez: ejecute esto primero: devenv.exe / ResetSettings y 1: en el menú superior, haga clic en la etiqueta de depuración 2: haga clic en opciones y configuraciones 3: en "depuración" y en "general", busque "habilitar .net framework source stepping" 4: Marque la casilla. 5: Y ahora todos los símbolos serán descargados y reconfigurados :)
Si vuelve a ocurrir 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 opciones y configuraciones 3: en "depuración" y debajo de "símbolos" busque el botón "caché de símbolos vacío" y haga clic en él.
fuente
Abra la URL de la aplicación web desde el navegador y luego, en el IDE de VS.Net, use Herramientas -> AttachtoProcess
luego adjunte a aspnet_wp.exe.
El depurador comenzará a funcionar
fuente
Tuve que desinstalar manualmente todas las instancias de .dll del registro y todas las instancias de .dll de mi unidad local. Desinstalé / reinstalé mi aplicación y ahora estoy llegando a puntos de interrupción. Perdí medio día haciendo esto :(.
fuente
Intenté renombrar el
.pdb
archivo en laobj\debug
carpeta e hice una solución limpia y reconstruí.Creó un nuevo
.pdb
archivo y pude alcanzar los puntos de interrupción correctamente.fuente
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 podría depurar.
Solucioné el problema ejecutando lo siguiente en la Consola del Administrador de paquetes de Nuget:
PM> Paquete de actualización Newtonsoft.Json
fuente
Para mi aplicación WPF, eliminé la carpeta de la aplicación, volví a "Obtener más reciente" del control de código fuente y la reconstruí. Todos los puntos de interrupción funcionan muy bien ahora.
fuente
Intente configurar Silverlight Application Project como un proyecto de inicio: haga clic derecho en 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 / temporales en su navegador cada vez que realice cambios en la aplicación Silverlight
fuente
Otra anécdota que podría ser útil.
Encontré este problema cuando uno de mis proyectos estaba usando referencias de archivo de una carpeta de salida de Release. Cuando los resultados de la compilación se colocaron en una carpeta de Bienes, estos dlls de lanzamiento sobrescribían los dlls de depuración.
La solución fue asegurarme en el archivo csproj, HintPath de mi referencia era
<HintPath>..\..\Core\Goods\$(Configuration)\MyFramework.dll</HintPath>
y no
<HintPath>..\..\Core\Goods\Release\MyFramework.dll</HintPath>
fuente
Tuve este problema cuando estaba en un cliente donde, para cada solución de aplicación, copiaban la mayoría de los ensamblados compartidos en una carpeta " Referencias ", luego los agregaban a la solución como " Elementos de solución " y como " Proyecto " dentro de la solución.
Todavía no estoy seguro de por qué, pero algunos de ellos fueron depurables, otros no, aunque en la configuración de Referencias para los ensamblajes se especificaron las rutas completas correctas.
Este comportamiento impredecible casi me volvió loco :)
Resolví esto eliminando todos los ensamblados de la carpeta " Referencias " para los que había proyectos con código fuente, y manteniendo un muy buen seguimiento de la información de versión para ensamblados compartidos.
fuente
Tuve un problema similar, excepto que mi problema era tonto: tenía 2 instancias del servidor web incorporado ejecutándose en 2 puertos diferentes Y tenía mi proyecto -> propiedades -> web -> "URL de inicio" apuntando a un puerto fijo pero la aplicación web no se estaba ejecutando realmente en 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 en el puerto 50803.
Cambié el servidor web incorporado para que se ejecutara 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
fuente