Al depurar en Visual Studio, a veces agrego un punto de interrupción pero está vacío y VS dice "El punto de interrupción no se alcanzará actualmente. El código fuente es diferente de la versión original". Obviamente, esto me impide poder depurar.
¿Qué demonios significa el mensaje? ¿Qué versión original? Si acabo de abrir la solución y no he realizado ningún cambio en el código, ¿cómo puede haber una 'versión original'?
.net
visual-studio
debugging
David
fuente
fuente
Respuestas:
Como dice, el "código fuente es diferente de la versión original".
Haga clic derecho en la carpeta del proyecto dentro del explorador de soluciones y elija
Clean
. ¡Cree una nueva versión del proyecto y el punto de interrupción volverá a funcionar!fuente
Si ha desmarcado el proyecto DLL en la configuración de compilación de depuración , ¡su nuevo código nunca se construirá!
Vaya a
Build --> Configuration Manager ...
(en VS2010) y verifique si el proyecto con el código que está tratando de depurar está marcado para la configuración de compilación actual.fuente
Any CPU
opción y funciona de nuevo.Para mí fue mientras trabajaba en un proyecto de sitio web. Después de limpiar estas carpetas temporales, obtuve los errores de compilación adecuados:
C:\Documents and Settings\%username%\AppData\Local\Temp\Temporary ASP.NET Files
C:\windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
Finalmente resolví el problema cuando descubrí que un archivo de clase que había movido intencionalmente a una subcarpeta, de alguna manera reapareció en la carpeta raíz. VS estaba usando ese mientras yo editaba el otro.
fuente
%localappdata%
en el cuadro de búsqueda te lleva directamente aC:\Documents and Settings\%username%\AppData\Local
¿Alguna vez hiciste esto?
¿Desea continuar y ejecutar la última compilación exitosa?
Si marcó la casilla y presionó "Sí", obtendrá la última compilación exitosa ejecutándose aunque su proyecto no se compile. Esto significa que siempre que establezca un punto de interrupción, obtendrá ese error.
Intente cambiar este valor:
fuente
Ir
Desmarque Requerir que los archivos de origen coincidan exactamente con la versión original
fuente
Seleccione Debug en Configuraciones de soluciones , en lugar de Release
fuente
Presta atención a la ventana "Salida" en VS. Le dirá qué ensambles se cargan y cuándo. Puede ver que se está cargando una versión anterior de su ensamblaje en algún lugar de la carpeta.
Por ejemplo, si tiene varios ensamblajes y actualmente está intentando dividir uno de los ensamblajes de soporte, el CLR se encargará de la resolución del ensamblaje, lo que puede cargar otro archivo de ensamblaje que no sea el que ha referenciado en el proyecto.
fuente
Cerrar Visual Studio y volver a abrir la solución puede solucionar el problema, es decir, es un error dentro del IDE (estoy ejecutando VS2010).
Si tiene más de una instancia de Visual Studio ejecutándose, solo necesita cerrar la instancia que ejecuta la solución con el problema.
fuente
Ha aparecido una nueva forma de solucionar este problema desde Visual Studio 2017 15.3.1 hasta 15.3.5. Si está utilizando EditorConfig , la
charset=utf8
opción causa estos síntomas. El equipo de VS ha reproducido esto y dice que están trabajando en ello .Entonces, una solución es comentar su
charset=utf8
línea en el archivo .editorconfig.Editar: Esto debería solucionarse a partir de VS 15.5.
fuente
charset=utf8
se interpretaba como "UTF-8 con BOM". Cambiar esa interpretación a "sin BOM" rompió algunos archivos UTF-8 que tenían la BOM en ellos. Entonces, si se encuentra con este problema y la solución de Visual Studio aún no se ha lanzado, intente eliminar la lista de materiales desde el comienzo de sus archivos de texto y eso puede solucionar el problema. (Este comentario está pidiendo una referencia de Zero Wing ... :-))Esto sucede a menudo también si está utilizando un archivo de referencias a binarios (en lugar de referencias de proyecto a código en su proyecto), y el binario compilado al que hace referencia no está sincronizado con el código fuente correspondiente en su máquina. Esto puede suceder porque descargó una nueva versión del binario desde el control de origen sin el nuevo código fuente que lo acompañaba, o si tiene algunas versiones del binario en su máquina y hace referencia a una copia anterior, etc. Si esto es realmente El problema es que es una buena razón para utilizar referencias de proyectos tanto como sea práctico.
fuente
Para mí, ninguno de los elementos resolvió el problema. Acabo de agregar una nueva línea de código dentro de esa función, algo así como:
Al agregar eso, creo que activé Visual Studio para agregar esta función a la versión original
fuente
Esto puede suceder cuando la hora del sistema cambia durante la depuración o entre sesiones de depuración, ya sea mediante programación, manualmente o mediante un programa externo.
fuente
Hay una configuración casi imperceptible que solucionó este problema para mí. Si hay un archivo fuente en particular en el que el punto de interrupción no está llegando, podría aparecer en
Por alguna razón desconocida para mí, VS 2013 decidió colocar un archivo fuente allí, y posteriormente, ya no pude alcanzar el punto de interrupción en ese archivo. Este puede ser el culpable de "el código fuente es diferente de la versión original".
fuente
El problema es que su información de depuración no está sincronizada con su ensamblaje. La solución es simple:
Debería hacer el truco!
(Lo extraño es que una reconstrucción sin tirar los archivos .pdb no siempre funciona. Puedo ver que la fecha modificada se actualiza, pero aún en algún lugar de la cadena (depurador VS2013, IIS, caché de ensamblaje) este cambio no se detecta )
fuente
Puede recibir este mensaje cuando está utilizando un activador y el ensamblaje en el que establece el punto de interrupción aún no se ha cargado.
El punto de interrupción se resolverá una vez que el activador cargue el ensamblaje (suponiendo que el ensamblaje y los símbolos de depuración estén actualizados). Un buen lugar para mirar es la ventana de módulos en el menú de depuración. Allí debe buscar el ensamblaje al que pertenece su archivo también. Primero verifique que el conjunto esté cargado. Entonces, ¿desde dónde se carga? Entonces, se carga el archivo de símbolos. De nuevo, ¿desde dónde se carga el archivo de símbolos? Finalmente verifique las versiones de ambos.
fuente
Encontré esto también. Las condiciones que causaron mi problema:
Había causado esto al abrir una versión anterior (VS me preguntó si quería señalar esta instancia en la depuración de IIS, respondí 'Sí'), luego abrí la versión actual (respondiendo nuevamente al mensaje de IIS con un 'Sí' ), luego intenta depurar en la versión anterior.
Para resolverlo, simplemente cerré y volví a abrir la versión anterior e intencionada, una vez más afirmando que era la fuente de depuración.
fuente
Intente deshabilitar y volver a configurar el punto de interrupción mientras se ejecuta en modo de depuración en lugar de hacerlo antes de iniciar el modo de depuración.
fuente
Esto sucede también cuando se depura un proyecto de C ++ que carga un módulo que se ha implementado con algún lenguaje CRL (C ++ administrado, C #, etc.). En esta situación, el mensaje de error es realmente engañoso.
La solución es poner la propiedad de configuración de soporte Common Language Runtime (CLR) en el proyecto de inicio y volver a compilarla.
fuente
Si tiene más de un proyecto en su solución , asegúrese de que el proyecto correcto esté configurado como
StartUp Project
. Para establecer un proyecto en particular como el Proyecto de inicio de su solución, haga clic con el botón derecho en el proyecto, elijaSet As StartUp Project
.Después de configurar mi Proyecto de inicio correctamente, el hilo alcanzó el punto de interrupción deseado.
fuente
Experimenté esto en una versión de 32 bits en vs2017.
Exactamente ninguna de las soluciones funcionó para mí. Reinicié, borré los archivos IDE, limpié la solución construida, saqué del repositorio de git y reconstruí la solución en vano.
Estaba obteniendo una dependencia de 64 bits de nuget y tan pronto como utilicé el ensamblaje, las fuentes ya no se integraban en el ejecutable final y, en cambio, se construían las fuentes en caché IDE.
Eliminé la configuración de nuget, eliminé el ensamblado al que se hace referencia, descargué el código fuente, construí log4net manualmente, lo firmé, lo agregué a una carpeta en mi proyecto, agregué referencias y pude volver a depurar.
Esto fue un dolor, espero que aparezca en la lista de respuestas para que todos lo vean.
Editar: no hubo ningún error durante la compilación a pesar de que la opción "solicitar un error de compilación" se activó en la configuración del IDE.
fuente
Para mí, la solución estaba oculta en las
Advanced Build Settings
propiedades del proyecto:Por una razón desconocida, se configuró en
none
: configurarlo parafull
que se golpeen los puntos de interrupción.Para llegar a este cuadro de diálogo, abra las propiedades del proyecto, luego vaya a
Build
, luego seleccione elAdvanced...
botón en la parte inferior de la página.fuente
Tuve el mismo problema en varios proyectos en un proyecto de arquitectura en capas y el problema estaba en las configuraciones, la casilla de verificación de compilación para el proyecto seleccionado no ha sido marcada. entonces el problema se solucionó para un proyecto.
Para otra capa estaba dando el mismo problema, incluso la construcción está habilitada en las configuraciones. Hice todas las demás opciones, como reiniciar la limpieza del proyecto, pero ninguna de ellas ayudó. Finalmente, desmarqué la casilla de verificación de compilación para ese proyecto en particular y limpié y reconstruí. De nuevo marcó la casilla de verificación e hizo lo mismo. entonces se solucionó el problema.
Espero que esto ayude..
fuente
En mi caso, estaba adjuntándome a un proceso en ejecución en VS 2012. Cuando lo adjunto, tiene la opción de depurar en varios modos (nativo, script, silverlight, Managed 2.0, Managed 4.0, etc.). Por defecto, el depurador selecciona el modo automáticamente. Sin embargo, Automático no siempre toma la decisión correcta. Si su proceso contiene múltiples tipos de código, asegúrese de que el depurador esté usando el correcto.
fuente
En mi caso, estaba desarrollando una aplicación de Windows CE, que probó contra un emulador. El problema era que el ejecutable no se implementó en el emulador, por lo que el .pdb (en el entorno de desarrollo) no estaba sincronizado con el .exe (en el emulador), porque el nuevo .exe nunca se copió al emulador. Tuve que eliminar el .exe en el emulador para forzar una nueva implementación. Entonces funcionó.
fuente
Lo que funcionó para mí fue cambiar la plataforma de la solución de x86 a cualquier CPU. Después de cambiar a Cualquiera, configuré una dirección de detención, ejecuté el sitio web, abrí la página, hice clic en el botón y se detuvo. Cerré el sitio, cambié de nuevo a x86 y realicé la misma secuencia con éxito.
fuente
En Windows 7, Visual Studio Express 2010, si ha activado la opción Usar modo de compatibilidad para Windows XP SP3 , este error puede ocurrir.
Desmarqué la opción y funcionó perfectamente de nuevo. Haga clic derecho en el acceso directo a VS o al ejecutable, seleccione propiedades y luego compatibilidad .
fuente
Primero lo intenté desde la línea de comando;
eliminar archivos temporales de la línea de comando funcionó.
C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Archivos temporales de ASP.NET> raíz rd / s
Cuando desactivo la opción "Activar solo mi código" en Herramientas -> Opciones -> Depuración -> General
El problema se resolvió para mí. Es una aplicación WCF, intentaba depurar una página ashx. http://blogs.msdn.com/b/zainnab/archive/2010/10/25/understanding-just-my-code.aspx
fuente
Me sucedió porque tenía otros proyectos en la solución que no se estaban construyendo. Después de descargar esos proyectos problemáticos (haga clic con el botón derecho en el proyecto en el explorador de soluciones -> Descargar proyecto), reconstruí la solución y corrí nuevamente: ¡el punto de interrupción fue alcanzado!
fuente
Resultó estar en Visual Studio 2017 después de agregar archivos existentes al proyecto. Esto funcionó para mí:
SolutionFolder\.vs\SolutionName\v15\sqlite3
y quitarstorage.ide
fuente
Asegúrese de no estar en modo de liberación cuando intente depurar.
fuente