De vez en cuando me encuentro con el siguiente problema:
Comienzo a depurar el complemento y los puntos de interrupción se ignoran. Casi parece que la comunicación entre el IDE y el componente no funciona.
Mi problema es que la última vez que sucedió esto lo resolví y ahora no recuerdo qué hice para solucionarlo.
El punto de interrupción no se alcanzará actualmente. No se han cargado símbolos para el documento.
En parte, el problema que tengo ya se describe aquí, pero no hay una solución para el mal funcionamiento del punto de interrupción real.
Tenga en cuenta que esto normalmente funciona.
Eliminar el bin y el obj no parece funcionar.
Esta vez acabo de restaurar todo mi proyecto desde la copia de seguridad y comencé de nuevo, pero me gustaría saber cómo solucionarlo si vuelvo a encontrarlo.
fuente
Respuestas:
Aquí hay una solución no oficial y aún no probada del personal de ESRI. (Destacaron que esta no es una solución oficial)
Intente eliminarlo de arcmap.exe.config, en el directorio bin.
Este es el archivo xml \ ArcGIS \ Desktop10.0 \ bin \ arcmap.exe.config.
fuente
Debug.WriteLine()
mensajes no se enviaran a la ventana de salida en VS 2010.2 años y 2 versiones más tarde y esto sigue siendo un problema. Acabo de terminar de actualizar / mejorar todos mis complementos para 10.2 y encontré este problema nuevamente. Implementé TODAS las sugerencias en esta publicación y nada funcionó, pero he descubierto 1 posible problema adicional . Desafortunadamente, no estoy seguro de si este fue el culpable o no porque también he implementado la mayoría de las otras soluciones posibles al mismo tiempo.
Nuevo hallazgo: me di cuenta de que he estado desarrollando complementos desde la versión 10 en la misma máquina y después de la reinstalación no siempre he limpiado los datos heredados de ArcGIS. Descubrí que tenía una versión anterior del complemento culpable en una versión anterior de los datos de ArcGIS en C: \ Archivos de programa (x86) \ ArcGIS. Dado que ArcGIS cargará los complementos heredados, posiblemente haya algún tipo de conflicto. Eliminé todos los datos de la aplicación arcgis heredados (Desktop10.0, Desktop10.1) dejando solo Desktop10.2 y el punto de quiebre cobró vida. Una vez más, no estoy al 100% si esta es la solución, pero puede ser otro elemento en la lista para verificar.
He visto que este problema en particular se llama "el asesino definitivo de la productividad" en otro sitio y no podría estar más de acuerdo.
En resumen, aquí está mi lista actual de tareas pendientes para el problema del punto de interrupción 'muerto':
Asegúrese, en realidad estoy ejecutando el complemento. Hacer que el depurador inicie la aplicación no es suficiente: el punto de interrupción aparecerá "muerto" hasta que ejecute el complemento (botón, opción de menú, etc.)
Elimine los foders OBJ y BIN del directorio del proyecto.
Elimine el contenido de assebmly chache: C: \ Users \ User \ AppData \ Local \ ESRI \ Desktop10.2 \ AssemblyCache
Eliminar todos los datos de ensamblaje heredados. (Si la versión actual es 10.2, elimine los datos de ensamblaje de Desktop10.0, Desktop10.1) No hay pruebas de que esto ayude o sea parte del problema, pero no hay razón para que estos datos existan, por lo que lo elimino por si acaso (C : \ Users \ User \ AppData \ Local \ ESRI)
Según la sugerencia de soporte de ESRI; Modifique el XML de configuración de ArcCatalog y ArcMap (no funcionó por sí solo cuando lo intenté, pero varias personas lo recomendaron como solución, incluido el soporte de ESRI) Localice ArcCatalog.exe.config y ArcMap.exe.config en C: \ Archivos de programa ( x86) \ ArcGIS \ Desktop10.2 \ bin Abra cada xml en el bloc de notas y elimine la línea
<supportedRuntime version="v2.0.50727"/>
Se trata de la quinta líneaElimine todos los datos heredados de la aplicación ArcGIS del directorio de instalación. Esto fue lo que funcionó para mí. (probablemente) Vaya a: C: \ Archivos de programa (x86) \ ArcGIS Elimine todas las carpetas excepto la actual para Desktop10.x (es decir, Desktop10.0, Desktop10.1) Solo la versión actual de Desktop debe permanecer en esta ubicación.
Elimine y vuelva a agregar todas las referencias del proyecto, incluidas las referencias que no sean ESRI, vuelva a guardar, repita los pasos 2 y 3, vuelva a compilar, ejecute dbugger.
Reiniciar la computadora. (Esto funcionó en el pasado) TAMBIÉN descubrió que esta es una de las soluciones recomendadas en Stack Overflow.
En Config.esriaddinx, cambie el botón para incluir onDemand = false: (sugerencia de Kirk - ver arriba) Esto no funcionó para mí personalmente.
Reconstruir proyecto desde cero. (Esto funcionó para mí en el pasado).
fuente
La única vez que obtuve esto es cuando tuve otra instancia de ArcMap abierta y olvidé cerrarla antes de compilar / depurar. Si no cierra todas las instancias con el ensamblaje, se seguirá utilizando el anterior. O algo así.
fuente
Como .NET Framework de mi proyecto es 4.0, cambié a
supportedRuntime version="v4.0.30319"
ArcMap.exe.config y noté que el problema se retrasó por este cambio. También recordé que ArcMap también carga ArcCatalog, así que también cambié ArcCatalog.exe.configsupportedRuntime version="v4.0.30319"
y YES !!! Está funcionando de nuevo. Pasé todo el día tratando de arreglar esto y espero que también funcione para ti.fuente
Probé las sugerencias anteriores por un tiempo y finalmente llegué a una solución. Ir al grano, primero daré la solución, luego la explicación:
Abra el Administrador de tareas. Finalice el proceso para cualquier copia de ArcMap.exe.
Abre un Explorador de Windows. Vaya a C: \ Usuarios \\ Configuración local \ ESRI \ Desktop10 ..
Si no ve AssemblyCache, Organice> Carpeta y opciones de búsqueda> Ver> desmarque "Ocultar archivos protegidos del sistema operativo (recomendado)"
En los directorios en AssemblyCache, busque el que contiene su .dll.
Eliminar el .dll.
Reconstruir el proyecto y depurar. Una vez que se active su complemento, debería ver que el contenido de la memoria caché se actualiza.
Si lo desea, vuelva a ocultar los archivos protegidos del sistema operativo.
El problema para mí fue que había una instancia anterior de mi DLL en la carpeta C: \ Users \\ Configuración local \ ESRI \ DesktopX.X \ AssemblyCache \, y tampoco pude ver \ AssemblyCache porque no me di cuenta Era un archivo oculto del sistema operativo. También hubo una instancia zombie de ArcMap ejecutándose, y cuando intenté eliminar la DLL inicialmente estaba bloqueada. Mi sospecha es que, en primer lugar, lo que causó el problema es que no cerré completamente una sesión de depuración de ArcMap antes de volver a compilar el código y comenzar otra. La antigua DLL en el caché no se pudo sobrescribir porque la antigua instancia de ArcMap todavía la tenía bloqueada, y una vez que se desincronizó con el nuevo código, la versión en caché ya no se actualizó. (Puedo ver por fechas de archivo que .config, .pdb y .xml se están actualizando pero no el .dll).
fuente
Estaba lidiando con el mismo problema, con mi propio complemento en otro tema totalmente, e inevitablemente seguí los siguientes:
Al principio, inicie la depuración y en el menú elija la siguiente ventana Depuración >> Windows >> Módulos, donde puede ver qué módulos se cargaron al inicio de la depuración. Si no puede ver su yourAddIn.dll, entonces al menos sabe que no fue cargado por el estudio. Si ve allí y no puede poner el punto de interrupción allí, entonces el Studio cargó uno antiguo. Para verificar esto, cambie el nombre del ensamblado en las propiedades del proyecto, reconstruya la solución, inicie la depuración y verá el viejo archivo DLL cargado allí. No sé de dónde carga el estudio este viejo dll.
Vaya al Explorador de soluciones y compruebe comparar los archivos "yourAddIn.Addin" y "yourAddIn - For Testing.AddIn" y pueden diferir. ¡El estudio usa solo el segundo archivo en su Administrador de complementos! Al primer cambio Cambie también la etiqueta para referirse a la dll correcta y también puede verificar la etiqueta. Para mí, el valor se estableció de nuevo en 0 en el archivo "yourAddIn - For Testing.AddIn", por lo que lo cambié a 1. (Si elimina el directorio bin de su complemento e inicia el estudio, le preguntará y preguntará ¡le gustaría eliminar este complemento de su lista de complementos! En este punto, Studio establece el LoadBehavior en 0.)
¡Después de estos dos cambios, comenzó a funcionar nuevamente!
fuente
Con Visual Studio, creé un nuevo complemento para Arcmap y le agregué un botón y una barra de herramientas. Resultando en un archivo de configuración que se ve así:
Creé un código en el constructor para el botón y puse un punto de interrupción en él. Comencé en modo de depuración y veo que el ensamblado aún no se ha cargado:
Cambié el botón para incluir onDemand = false:
Cuando comencé de nuevo arcmap, llegó al punto de ruptura. Tenga en cuenta que si la barra de herramientas está desactivada en el inicio, deberá hacerla visible para que se llame al constructor de botones, por lo que, de alguna manera, todavía está bajo demanda.
fuente
Tuve que cambiar mi complemento para que arcCatalog coincida con el marco 4 con la nueva versión 10.1 de ArcCatalog.
Acabo de comentar la versión = "v2.0.50727" y no comentado "v4.0.30319"
En C: \ Archivos de programa (x86) \ ArcGIS \ Desktop10.1 \ bin, el archivo de configuración xml ArcCatlog.exe
se detiene en el punto de interrupción ahora
Parece ser el mismo problema con arcmap
fuente
Después de migrar un proyecto ESRI ArcGIS 10 de una máquina a otra, encontré el error de que la máquina no podía cargar los archivos .pdb de depuración para ArcMap.exe. Probé cada consejo en esta publicación sin suerte.
Luego hice lo siguiente:
Eliminé las referencias para todas las bibliotecas Esri. * En cada proyecto que las contenía, y las volví a agregar al proyecto en la nueva máquina.
Esto es lo que finalmente funcionó para mí. Si alguien tropieza aquí con este problema impreciso y ha intentado todo lo demás enumerado en esta página, intente esto: es rápido, fácil y bastante inofensivo. No estoy completamente seguro de por qué esto tuvo que hacerse, supongo que tiene que ver con buscar las bibliotecas por máquina.
Esto fue para un proyecto que usaba Comandos Base / Barras de herramientas, y no los nuevos Complementos. Usando ArcGIS 10.0 y .NET 3.5 con Visual Studio 2010 en Windows 7 Pro.
fuente
Para aquellos que apuntan a .Net 4.0 Framework, el siguiente funcionó para mí.
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0.30319"/> <!--supportedRuntime version="v2.0.50727"/--> </startup>
Por alguna razón, ArcCatalog.exe.config parece bloqueado para modificar. Lo solucioné copiándolo y modificándolo en otro directorio y luego reemplazándolo.
"CLR4.0"
fuente
Dos posibles causas vienen a mi mente:
El complemento no está registrado correctamente, por lo que la DLL no se carga en el proceso de ArcMap que se está depurando.
Su proyecto está dirigido a .NET 4. Intente apuntar a .NET 3.5 en su lugar.
fuente
Si está codificando con múltiples proyectos en la misma solución de Visual Studio, puede encontrar situaciones en las que Visual Studio (VS) "deshabilita" sus puntos de interrupción y no puede pasar por su código. Esto me sucedió recientemente cuando no pude entrar en un proyecto de ensamblaje de DLL "dependiente" al que se llamaba desde mi proyecto principal.
Las advertencias de VS sugirieron que mi ensamblado (DLL) estaba desactualizado y no coincidía exactamente con mi código. Hay opciones de VS para desactivar el requisito de que el código coincida, pero intuitivamente esto parecía una mala idea y fue respaldado por publicaciones de Internet. Leí muchos sitios web y hay algunas sugerencias retorcidas por ahí.
Al final, hice una búsqueda de la DLL de salida de mi máquina dependiente y encontré varias copias antiguas en varias ubicaciones en mi computadora (presumiblemente de experimentos anteriores y configuraciones de proyectos). Así que los eliminé todos y reconstruí mi solución desde cero. Esto solucionó mi problema. Supongo que mi proyecto actual se enlazó inadvertidamente a una de las copias antiguas de alguna manera y no usó la última compilación que se estaba colocando en mi carpeta de depuración.
fuente
Lo que funcionó para mí no fue eliminar el arcmap.config.exe como se describe en la publicación de Jakub anterior, sino configurar la etiqueta "supportRuntime" en este archivo a la versión correcta del Framework que apuntas dentro de Visual Studio, en mi caso:
fuente
En varios proyectos de ArcObjects compilé una lista de razones por las cuales la depuración podría no funcionar para complementos, extensiones y comandos (pre-complemento). En ningún orden en particular:
Muchos pasos requieren que ArcMap se reinicie. Si todo lo demás falla, un reinicio de la máquina es una alternativa fácil, pero solo una vez he hecho que esto marque la diferencia.
fuente
AnthonyWJones describió lo que funcionó para mí en /programming/7192361/silverlight-project-wont-enter-debug-mode : "Abra las propiedades del proyecto web asociado. Seleccione la pestaña Web. Desplácese hasta en la parte inferior y en la sección "Depuradores", asegúrese de que "Silverlight" esté marcado ".
fuente
Esto me sucedió una o dos veces. Si no recuerdo mal, pude hacer que el punto de interrupción funcionara cuando hice un cambio de código menor, lo que significaba que la aplicación fue reconstruida. ¿Qué sucede cuando construyes o reconstruyes tu proyecto?
fuente
No puedo creer que más personas no tengan este problema. Ahora me encuentro con esto casi cada vez que estoy mejorando y depurando mis complementos.
Ninguna de las soluciones mencionadas anteriormente funciona. Para solucionar esto, necesito eliminar todo el proyecto y restaurarlo desde la copia de seguridad. Esto me lleva a creer que algo en el proyecto en particular se ha corrompido ya que generalmente comienza a suceder cuando ArcMap se bloquea durante la depuración.
fuente
¿Estás creando tu proyecto usando Framework 4? Tuve el mismo problema, pero cuando cambio a Framework 3.5, funciona bien.
fuente
intente limpiar y reconstruir y luego ejecutar sin depurar, cuando la aplicación se ejecute, adjúntelo en VS
fuente
Sé que esto puede sonar demasiado obvio, pero lo mencionaré de todos modos es que necesita la edición adecuada de Visual Studio. Por ejemplo, este problema podría ocurrir con una edición exprés de un año dado, mientras que podría funcionar con una edición definitiva. Si usa say 2010, intente cambiar a 2012. Luego intente cambiar de express a ultimate. Haría esto si aún no lo has hecho antes de meterte con problemas de carga de símbolos. ESRI proporciona información sobre la descarga de los símbolos a la memoria caché como se menciona en el enlace anterior (Ayuda de ArcObjects 10 .NET SDK). Sin embargo, esto puede no ser necesario. Asegúrese de utilizar el .net framework apropiado también antes de depurar, por ejemplo .net 3.5 en las ediciones anteriores.
fuente