2011-03-03 17 views
27

Estoy luchando para superar este obstáculo y tengo grandes esperanzas de que alguien en SO pueda ayudar.El punto de ruptura VS 2008 no se verá afectado. No se han cargado símbolos para este documento

enter image description here

Cuando me puse un punto de interrupción en mi proyecto de biblioteca de clases . Aparece como un punto de interrupción normal. Cuando empiezo a depurar mi solución, el breakpoint becomes hollowed out and has a yellow triangle with an exclamation point está dentro. La información sobre herramientas aparece cuando cacerola sobre el punto de interrupción es, "el punto de interrupción no se verán afectados actualmente. No hay símbolos han sido cargados para este documento."

Este proyecto no es una aplicación ASP.NET, es simplemente una aplicación winForms.

He adquirido una aplicación winForms existente con múltiples proyectos en la solución. Tengo el proyecto construido y ejecutándose en modo de depuración. Puedo detenerme en puntos críticos en algunos proyectos, pero no puedo acceder a los puntos críticos en otros proyectos, específicamente mi proyecto que es del tipo , biblioteca de clases.

Lo que he hecho hasta ahora:

  • He eliminado todos depurar y liberar carpetas,
  • He eliminado la carpeta obj, y han reconstruido la solución después.
  • He reiniciado el VS2008 IDE.
  • He reiniciado mi computadora.
  • Comprobé Configuration Manager para la solución para asegurar que mi proyecto de clase está incluido en la compilación de depuración, y lo es.
  • He comprobado la depuración/módulos para dll, aunque no estoy tratando de hacer referencia a un dll.

Además, he seguido los pasos de solución de problemas descritos en los puestos de SO:

the breakpoint will not currently be hit no symbols loaded

VS 2010, NUNit, and “The breakpoint will not currently be hit. No symbols have been loaded for this document”

The breakpoint will not currently be hit. No symbols have been loaded for this document.

Can't debug - “The breakpoint will not currently be hit. No symbols have been loaded for this document”

Fixing “The breakpoint will not currently be hit. No symbols have been loaded for this document.”

Además, he leído numerosos puestos que se encuentran en Google tanto MSDN y otros lugares, ninguno de los cuales se ajusta a mis necesidades específicas.

Algunos de estos mensajes son:

Visual Studio 2008 "The breakpoint will not be currently hit. No symbols have been loaded for this document"

The breakpoint will not currently be hit. No symbols have been loaded for this document

Breakpoint will not currently be hit. No symbols loaded for this document.

Debugger problem "The breakpoint will not currently be hit. No symbols have been loaded for this document

The Breakpoint will not currently be hit. No Symbols have been loaded for this document.

Todas las publicaciones que he leído han sido muy informativas, pero ninguna de las soluciones sugeridas se ajusta a mis necesidades específicas. Por favor, avíseme si se justifica más información. Tengo más enlaces que puedo proporcionar como referencias a lo que no funcionó. Además de los pasos adicionales que he tomado para intentar resolver este problema.

Estoy publicando este seguimiento para mantener a todos interesados. Seguí @Hans @ suggestion para llamar al archivo del proyecto en cuestión.

coloqué una frm dim como forma = new ProjectInQuestion.FormInQuestion

y

esto ahora tiene la carga de montaje en la depuración -> Windows-> Módulos

El nuevo problema es más desconcertante que mi problema original. Mis puntos de interrupción se ven bien, pero se saltan. No hay error evidente en el punto de ruptura.

enter image description here

+1

La solución a mi problema específico era instalar una instancia de la DLL que quería depurar atenuando específicamente una instancia antes de mi punto de ruptura. –

Respuesta

11

Puede que esta sea una pregunta antigua, pero quería responderla después de encontrar una solución para este problema porque era una de las preguntas más completas sobre este tema.

Intro

Mi proyecto es una aplicación ASP.NET, pero el problema de base sucederá en WinForms también. El problema surge cuando falta una DLL en el resultado de ensamblados. Sin embargo, esta misma excepción se produce si el archivo DLL al que hace referencia hace referencia a otra DLL que no está en los ensamblados. Debido a la forma en que el sistema operativo carga los archivos DLL, el archivo DLL al que se hace referencia debe estar en la ruta del entorno y no en los ensamblados de salida.

Proyecto A referencias DLL D. DLL D referencias DLL X. DLL D puede estar en sus ensamblados de salida. DLL X debe estar en la ruta del entorno.

La causa principal de este problema es la forma en que el sistema operativo carga las DLL nativas en> runtime. Los archivos DLL nativos se cargan utilizando la siguiente lógica, que no incluye los archivos temporales de ASP.net ni la carpeta de aplicaciones/bin. Este problema también ocurrirá en cualquier aplicación .Net si el archivo DLL nativo no está incluido en la carpeta/bin con el archivo .EXE> o si el archivo DLL no está en la variable de entorno de ruta de acceso.

Personal Solution

que estaba usando una DLL llamada DivaAPIWrapper.dll (DLL administradas para C#). Sin embargo, sabía que DivaAPIWrapper.dll necesitaba DivaAPI.dll (C++ no administrado) para funcionar. Puse DivaAPI.dll en todas mis rutas de salida, pero seguí recibiendo este error. Solo después de colocar DivaAPI.dll en mi ruta de entorno (C: \ windows \ Microsoft.Net \ Framework \ v2.0.50727) funcionó. Tenga en cuenta que su ruta puede ser diferente si está utilizando una versión más nueva de .NET Framework.

solución completa por Jerry Orman

ver enlace aquí: http://blogs.msdn.com/b/jorman/archive/2007/08/31/loading-c-assemblies-in-asp-net.aspx

+0

¡Esto parece la respuesta que estaba buscando cuando lo pregunté! Gracias por la respuesta. –

1

I que esto suceda todo el tiempo, como usted ha dicho el punto de interrupción no se activa hasta que se carga el archivo DLL. Sin embargo, realmente no importa, porque tiene que cargar la DLL antes de que el código pueda llegar a ese punto de todos modos. Mis puntos de ruptura comienzan de esta manera, pero siempre reciben un golpe.

+0

Me he dado cuenta de que los puntos de interrupción solo están disponibles si se hace referencia específica al conjunto, si los dll se cargan dinámicamente y se hace referencia a ellos utilizando una interfaz, nunca se golpean los puntos de interrupción. –

+0

Lo único que puedo hacer para omitir el punto de interrupción es ir a propiedades del proyecto> pestaña de compilación> opciones de compilación avanzadas> Establecer Generar información de depuración en 'Ninguno'. No creo haber visto eso en los enlaces referidos. – Kratz

+0

Tengo una función que carga dinámicamente mis ensamblajes en tiempo de ejecución cuando se usan, esto evita la carga de ensamblajes que no se están utilizando actualmente y guarda la memoria. Como resultado de que estos ensamblados se carguen de esta forma, no se puede depurar. –

4

Esto me sucedió hace poco para fijar un proceso en ejecución. La cuestión fue que las opciones de depuración se establece en

Agregar a: Código nativo

Para mi caso, tenía que ser:

Adjuntar a: El código administrado

1

Comprueba que no cambiaste el procesador al que pretendías compilar este proyecto. Lo hice, y cuando lo cambié de vuelta, todo funcionó de nuevo. Aparentemente, un cambio en el procesador lo hace "diferente del original"

1

Tuve el mismo problema con VS2008 en una aplicación de Vb.net-forms donde llamé a un dll en otro proyecto, cargado en el mismo grupo de proyectos. Encontré esta solución simple: cargué una instancia en el evento form_load como Dim pmg Como nuevo PMGExport.PMGExportNeu.

3

¡Una cosa que descubrí hace poco y que funcionó muy bien!

la aplicación host (el que está llamando a su DLL para ser utilizado) debe tener esta línea:

<supportedRuntime version="v4.0"/> 

en el archivo "WhateverApplicationItIs.exe.config", dentro de la sección <configuration>.

Ejemplo: (Ver "..." como lo que el archivo tiene en su interior y dejar tal cual)

<configuration> 
    ... 
    <supportedRuntime version="v2.0.50727"/> 
</configuration"> 

PS: tratar de igualar esta versión con el marco meta establecida en las propiedades del proyecto. Creo que 2.0.50727 es una buena prueba para 3.5 Framework y 4.0 para 4.0 Framework.

Para mí solo resolvió dos DLL diferentes que estaba tratando de depurar en diferentes aplicaciones.

+0

En VS2008 recibí el mensaje 'no se han cargado símbolos' y no pude depurar mi acción personalizada de WiX C#. CustomAction.config creado para mí por el asistente contenía etiquetas supportedRuntime para v4.0 y v2.0.50727. Pero tan pronto como comencé a comentar la etiqueta v4.0 y reconstruí pude depurar la acción personalizada. –

7

también me enfrenté mismo problema y encontré muchas solución de Internet, pero la solución funciona para mí se enumeran a continuación:

Su debido a mi solicitud presentada en el marco de la versión 4.0 y que estaba tratando de conectar proceso con la versión más adelante v2. 0 así que asegúrese de que su versión de marco con la versión de código administrado como se muestra a continuación.

enter image description here

1

Por favor, compruebe si se ha establecido el modo de Soluciones configurador en la barra de herramientas (justo al lado botón para ejecutar) a "depuración" en lugar de "Release"

+0

Esta es una posible razón por la que tengo dos años, ya no estoy trabajando en este software y ya no estoy disponible para mí. Gracias por la respuesta. –

1

Espero que esto ayude ...

Estaba haciendo referencia a una DLL que estaba en mi carpeta bin \ Release, aunque estaba en modo de depuración.

Copié la DLL a la carpeta bin \ Debug y cuando ejecuté VS, se golpeó el punto de interrupción.

0

favor, compruebe si el modo de Soluciones configurador en la barra de herramientas (justo al lado botón para Ejecutar) está ajustado en "depuración" en lugar de "Release" a mí me funcionó THX

0

Asegúrese debug mode se selecciona en Visual Studio antes de comenzar a depurar

Compruebe la lista desplegable, cerca del botón Play en Visual Studio.

1

probar esto, En Vs 2008, vaya a Herramientas> opción-> Debugging-> General-> sin control/desactivar 'requiere archivos de origen para que coincidan exactamente la versión original

1

tengo el mismo problema en VS2010 , resolví en los pasos de flujo:

  1. proyecto Haga clic
  2. seleccionar las propiedades
  3. /C++
  4. seleccionar C -> general
  5. informati Conjunto de depuración en formato a program Database(/ZI)
  6. Comprobar vinculador-> depurar Generar información de depuración es sí.
Cuestiones relacionadas