write while visual studio modify modificar how codigo code and visual-studio visual-studio-2008 edit-and-continue

visual studio - while - Editar y continuar: "Los cambios no están permitidos cuando..."



modify code while debugging visual studio 2017 (30)

Incluso si creo un proyecto limpio de WinForms, Editar y Continuar no funciona y me da el error:

Los cambios no están permitidos cuando el depurador se ha adjuntado a un proceso que ya se está ejecutando o el código que se depura estuvo optimizado durante la compilación o el tiempo de ejecución.

  1. La opción Editar y Continuar está marcada en Herramientas → Opciones → Depuración.
  2. La optimización no está habilitada.
  3. Parece que no hay ninguna configuración del perfilador administrado.
  4. Me estoy ejecutando en modo Debug
  5. Me estoy ejecutando en la CPU x64 y en Windows XP de 32 bits, pero establecer el objetivo de la plataforma en x86 en lugar de AnyCpu no ayuda.
  6. La reparación de la instalación de Visual Studio no ayuda.

También encontré este artículo en el sitio web de MSDN:

Escenarios no admitidos

Editar y continuar no está disponible en los siguientes escenarios de depuración:

  • Depuración en Windows 98.

  • Depuración en modo mixto (nativo / administrado).

  • Depuración de SQL.

  • Depurando un vertedero del Dr. Watson.

  • Edición de código después de una excepción no controlada, cuando la opción "Desenrollar la pila de llamadas en excepciones no controladas" no está seleccionada.

  • Depuración de una aplicación de tiempo de ejecución incrustada.

  • Depurando una aplicación con Adjuntar a en lugar de ejecutar la aplicación con Inicio desde el menú Depurar.

  • Depuración del código optimizado.

  • Depuración del código administrado cuando el destino es una aplicación de 64 bits. Si desea utilizar Editar y Continuar, debe establecer el destino en x86. (Propiedades del proyecto, pestaña Compilar, Configuración avanzada del compilador).

  • Depurando una versión anterior de su código después de que una nueva versión no pudo compilarse debido a errores de compilación.

Pero puedo responder "No" a cada elemento de esta lista.

Funcionó antes, pero hace varios días dejó de funcionar, y no sé cuál podría ser el motivo.


Soluciones aplicables

Aquí hay una lista incompleta y desordenada de posibles soluciones para intentar si * quieres corregir y continuar rápidamente:

  • Asegúrate de estar en modo de depuración
  • Asegúrate de no estar iniciando un proceso de modo mixto
  • Intente establecer el destino de la CPU en x86 en lugar de AnyCPU (en máquinas x64)
  • Desmarque la casilla de verificación Optimizar código para el modo de depuración en Propiedades del proyecto-> Depurar
  • Desmarque Habilitar optimizaciones en la configuración avanzada del compilador
  • (ASP.NET) Compruebe la respuesta del codificador de noche si es el caso
  • (ASP.NET) Compruebe esta respuesta (por matrixugly) si es el caso
  • (ASP.NET) Asegúrese de tener Editar y Continuar habilitado en la pestaña Web (vs2010)
  • (ASP.NET) Vaya a Propiedades> Web> Servidores y asegúrese de que Habilitar y continuar esté marcado en Usar el servidor de desarrollo de Visual Studio .
  • Vaya a Herramientas> Opciones> Depuración> General y asegúrese de que Exigir que los archivos fuente coincidan exactamente con la versión original no está marcada.
  • ¿Estás usando Microsoft Fakes? Inhibe Editar y Continuar.
  • Elimine todas las instancias * .vshost.exe seleccionando Terminar árbol de procesos en el Administrador de tareas . VS regenerará una instancia correcta.
  • Elimine todos los puntos de interrupción con Depuración-> Eliminar todos los puntos de interrupción
  • Habilitar y continuar existe en el menú Herramientas> Opciones> Depuración y también en Configuración del proyecto . Asegúrate de verificar ambos lugares. Editar y Continuar no es compatible con la configuración extendida de Intellitrace.
  • Asegúrese de que la información de depuración en Propiedades del proyecto> Compilar> Avanzado> Salida> Información de depuración esté configurada en Completa
  • Algunos complementos pueden estar interfiriendo. Verifica deshabilitando / desinstalando y luego probando las otras soluciones.
  • Si no le estás prestando suficiente atención, el error que obtienes al intentar corregir esto puede cambiar a otra cosa que sea más fácil de diagnosticar. Por ejemplo, un método que contiene una expresión lambda no puede soportar editar y continuar.
  • Asegúrese de que la variable del sistema COR_ENABLE_PROFILING no esté configurada en 1 . Algunos perfiladores configuran esto cuando se instalan y lo dejan así después de la desinstalación. Abra un símbolo del sistema y escriba set para comprobar rápidamente si su sistema está afectado, de ser así, elimine la variable o establézcala en 0 :

    • En Windows 8 y superior, busque Sistema (Panel de control).
    • Haga clic en el enlace Configuración avanzada del sistema .
    • Haga clic en Variables de entorno .
    • Eliminar COR_ENABLE_PROFILING
  • Tenga en cuenta los escenarios no admitidos (como se informa en la pregunta) y las ediciones no admitidas .

* por "usted", me refiero al visitante de la página que está golpeando su cabeza con un teclado para encontrar la solución.

¡Siéntete libre de editar esta respuesta si tienes otros consejos!


"Editar y Continuar", cuando está habilitado, solo le permitirá editar el código cuando se encuentre en el modo de interrupción: por ejemplo, haciendo que la ejecución se pause con una excepción o golpeando un punto de interrupción.

¡Esto implica que no puede editar el código cuando la ejecución no está en pausa! Cuando se trata de proyectos web de depuración (ASP.NET), esto es muy poco intuitivo, ya que a menudo querría hacer cambios entre las solicitudes. En este momento, el código de su depuración (probablemente) no se está ejecutando, ¡pero tampoco está en pausa!
Para resolver esto, puede hacer clic en "Romper todo" (o presionar Ctrl + Alt + Rotar ). Alternativamente, establezca un punto de interrupción en algún lugar (por ejemplo, en su evento Page_Load ), luego vuelva a cargar la página para que la ejecución se detenga cuando Page_Load al punto de interrupción, y ahora puede editar el código. Incluso código en archivos .cs .


Algunas cosas que parecían ayudar a usar VS2010:

  • vaya a Herramientas, Opciones, Depuración, General y asegúrese de que "Requerir que los archivos fuente coincidan exactamente con la versión original" esté desmarcado.
  • múltiples instancias .vshost.exe pueden ser sobradas de, por ejemplo, separar el depurador VS de un proceso detenido. Esto interferirá con los puntos de interrupción y compilará también. Use el Administrador de tareas, pestaña Procesos para eliminar todas las instancias de .vshost.exe haciendo clic con el botón derecho en cada instancia y seleccionando Terminar árbol de procesos. VS creará una nueva instancia.

Descubrí que aunque en las propiedades del proyecto las pestañas build y debug están configuradas en Debug y todas las otras configuraciones son correctas, sigo recibiendo el mensaje; sin embargo, después de buscar más en el menú Build, seleccione Configurations Manager ... y asegúrese de seleccionar Debug. en dos lugares allí también. vaya a ver ... ¿Cuántos lugares diferentes necesitan para configurar la depuración ?????? a pesar de que configura Proyecto - Configuración para depurar, entonces en Build - Manager no se ha modificado, por lo que ha cambiado la misma configuración allí, así como la Configuración del proyecto, parece una cuestión de Microsoft de nuevo .......


El error dice que una posible causa es: "el código que se depuró se optimizó en el momento de la compilación o el tiempo de ejecución". Vaya a Propiedades del proyecto-> Depurar y desmarque el cuadro Código de optimización para el modo de depuración.


El siguiente disparo me ayudó a usar VS2010:

vaya a Herramientas, Opciones, Depuración, General y asegúrese de que "Requerir que los archivos fuente coincidan exactamente con la versión original" esté desmarcado.


Eliminé un conjunto de datos de mi proyecto porque no lo usé. Después de eso, pude modificar el programa cuando se depura.


En mi caso, simplemente reiniciando a la configuración predeterminada del depurador y configurando IntelliTrace-> solo los eventos intellytrace ayudan


Eso sucede cuando el depurador no ha alcanzado un punto de interrupción o no ha pulsado Romper todo (pausa). No podría ser tan simple, ¿verdad?


Estaba enfrentando el mismo problema en Visual Studio 2005. Mi configuración es de 64 bits. Funcionó bien en una de las soluciones de VS pero no en la otra. Noté que solo habilité "Habilitar edición y continuar" para el proyecto en el que quería hacer cambios en el modo de depuración. Esto finalmente se resolvió para mí cuando seleccioné "Activar y Continuar" para mi proyecto de inicio también.

No hubo cambios de configuración, excepto la habilitación y la continuación necesaria.


Este problema se debe a la configuración de Intellitrace

Si Intellitrace está habilitado, asegúrese de que el evento Intellitrace solo esté marcado

De lo contrario, esto no permitirá editar y continuar ..

Si hace clic en las opciones de Intellitrace, verá las advertencias.


Finalmente llegué a resolver el problema: DESINSTALAR Gallio

Gallio parece tener bastante asperezas y es mejor no usar MbUnit 3.0 pero usar el framework MbUnit 2.0 pero usar el galio runner, que está ejecutando sin instalar desde el instalador (que también instaló un plugin visual studio).

Por cierto, tuve el problema incluso después de "desactivar" el plugin de Gallio. Solo la desinstalación resolvió el problema.

PD. Editado por nightcoder:
En mi caso, ¡la desactivación del TypeMock Isolator (framework de burlas) finalmente ayudó ! ¡Editar y continuar ahora funciona!

Aquí está la respuesta del soporte de TypeMock:

Después de profundizar en el problema de edición y continuación, y de conversar al respecto con Microsoft, llegamos a la conclusión de que no se puede resolver para Isolator. Isolator implementa un perfilador CLR, y de acuerdo con nuestra investigación, una vez que un perfilador CLR está habilitado y conectado, editar y continuar se desactiva automáticamente. Lamento decir que esto ya no se considera un error, sino una limitación de Isolator.


Habilite editar y continuar solo ejecute IIS Express. No trabaje en ISS local o host externo.


Hice todos los cambios mencionados en cada otra respuesta y ninguno funcionó. ¿Que aprendi? Habilitar y continuar existe en el menú Herramientas> Opciones> Depuración y también en la configuración del Proyecto. Después de que comprobé ambos, Habilitar y Continuar funcionó para mí.


Lo que funcionó para mí fue desmarcar "Usar modo de compatibilidad administrada" en

Herramientas -> Opciones -> Depuración

TBN: marcar o desmarcar "Requerir que el archivo fuente coincida exactamente con la versión original" no parece influir en el E & C

Espero que esto pueda ayudar.


Me encontré con esto hoy, resulta que tener la información de depuración establecida en pdb-only (o ninguna, me imagino) evitará que Edit y Continue funcionen.

¡Asegúrese de que su información de depuración esté configurada como "completa" primero!

Propiedades del proyecto> Compilar> Avanzado> Salida> Información de depuración


Me enfrenté al mismo problema. Mi problema era que podía modificar un archivo, pero no otro (ambos están en el mismo proyecto). Más tarde descubrí que el archivo que no pude modificar también era parte de otro proyecto. Ese otro proyecto (Prueba de unidad) no se cargó, y el depurador de VS inteligente muestra el error de que el ensamblado para este archivo dado no se cargó, y los cambios no están permitidos. ¡Que raro!

Por lo tanto, tuve que descargar el proyecto de prueba de la unidad y continuar la depuración EnC.


Ninguna de las soluciones anteriores funcionó para mí (se ejecuta en una máquina de 64x).

Finalmente, hice clic en ''advanced compiler settings'' y DESCALIFICÉ ''enable optimizations '' y ahora puedo recorrer el código y editar durante la depuración.


Para VS2017 puede ayudar a eliminar el archivo .suo en su solución, funcionó para mí. :)


Para mí, por una razón que no entiendo, la configuración "Generar información de depuración" en la "Configuración avanzada del compilador" se estableció en "pdb-only" en lugar de "Full".

De forma predeterminada, este parámetro siempre se establece en "Completo" pero un misterioso poltergeist ha cambiado este parámetro anoche. :)

PD: estoy en Visual Basic .Net con Visual Studio 2010


Parece ilógico, pero el único modo fue deshabilitar la edición y continuar desde las opciones de VS 2017 ... Luego, AspNet edit y continue comenzó a funcionar ...


Si creo un nuevo proyecto, las modificaciones durante la depuración no funcionan. Si creo un nuevo sitio web, las ediciones durante la depuración funcionan como se esperaba.


Si está depurando una aplicación ASP.NET, vaya a propiedades> web> Servidores y asegúrese de que "activar y continuar" esté marcado en Usar el servidor de desarrollo Visual Studio.


Si su preocupación es con una aplicación ASP.NET, asegúrese de tener la edición y continuar habilitada en la pestaña web (vs2010). También hubo una configuración separada para la depuración de ASP.NET en versiones anteriores.

Saludos,

Adán.


Tuve este problema en Microsoft Visual Studio 2008 y la solución es fácil. cuando ejecute su proyecto, configure el modo "Depurar" y no "Liberar". La solución de otra gente puede ser útil.


Tuve esto suceder en un archivo de clase vinculado. El resto del proyecto permitió E & C, pero obtuve el mismo error al editar el archivo vinculado. La solución consistía en dividir el archivo vinculado en su propio proyecto y hacer referencia al proyecto.


Tuve un proyecto de base de datos en la solución que impidió que se editara el proyecto de formularios web.

Hice clic en "Descargar" en el proyecto de la base de datos y todo funciona ahora con dulzura.


Un par de cosas para verificar

  • Asegúrese de que su compilación esté configurada para Depurar frente a versión
  • Asegúrate de no estar iniciando un proceso de modo mixto
  • Si está en una máquina de 64 bits Asegúrese de establecer el destino de la CPU en x86 en lugar de AnyCPU

EDITAR

No creo que esto importe, pero asegúrese de que el proceso de alojamiento esté habilitado para la plataforma de destino. Probablemente no ayude.

Si representa nuevos proyectos, podría ser algo aún más sutil. Intentaría lo siguiente.

  • HKCU de copia de seguridad: / Software / Wow6432Node / VisualStudio / 9.0 (tal vez simplemente renómbrelo)
  • Eliminar la misma clave
  • Prueba la repro nuevamente

Yo tuve el mismo problema. Incluso reinstalé VS 2008 pero el problema no desapareció. Sin embargo, cuando eliminé todos los puntos de quiebre, comenzó a funcionar.

Debug->Delete All Breakpoints

Creo que estaba sucediendo porque había eliminado una página aspx que tenía puntos de interrupción en su código, y luego creé otra página con el mismo nombre. Esto probablemente confundió al VS 2008.


incrustar tipos de interoperabilidad visual studio debe establecerse en falso