Domanda

Anche se creo un progetto WinForms pulito, Modifica e continua non funziona e mi dà l'errore:

  

Le modifiche non sono consentite quando il debugger è stato collegato a un processo già in esecuzione o il codice in fase di debug è stato ottimizzato in fase di compilazione o di esecuzione.

  1. L'opzione Modifica e continua è selezionata in Strumenti & # 8594; Opzioni & # 8594; Debug.
  2. L'ottimizzazione non è abilitata.
  3. Sembra che non sia stato impostato alcun profiler gestito.
  4. Sono in esecuzione in modalità debug
  5. Sono in esecuzione su CPU x64 e Windows XP a 32 bit, ma l'impostazione della piattaforma target su x86 anziché AnyCpu non aiuta.
  6. La riparazione dell'installazione di Visual Studio non aiuta.

Ho anche trovato questo articolo su MSDN sito web:

  

Scenari non supportati

     

Modifica e continua non è disponibile nei seguenti scenari di debug:

     
      
  • Debug su Windows 98.

  •   
  • Debug in modalità mista (nativo / gestito).

  •   
  • Debug SQL.

  •   
  • Debug di una discarica di Dr. Watson.

  •   
  • Modifica del codice dopo un'eccezione non gestita, quando " Svolgi lo stack di chiamate su eccezioni non gestite " l'opzione non è selezionata.

  •   
  • Debug di un'applicazione di runtime integrata.

  •   
  • Debug di un'applicazione con Allega anziché eseguirla con Avvia dal menu Debug.

  •   
  • Debug del codice ottimizzato.

  •   
  • Debug del codice gestito quando la destinazione è un'applicazione a 64 bit. Se si desidera utilizzare Modifica e Continua, è necessario impostare la destinazione su x86. (Proprietà del progetto, scheda Compila, impostazione del compilatore avanzato.).

  •   
  • Il debug di una versione precedente del codice dopo che non è stata creata una nuova versione a causa di errori di compilazione.

  •   

Ma posso rispondere a " No " per ogni elemento in questo elenco.

Ha funzionato prima, ma diversi giorni fa ha smesso di funzionare e non so quale potrebbe essere la ragione.

È stato utile?

Soluzione

Finalmente sono riuscito a risolvere il problema: DISINSTALLA Gallio

Gallio sembra avere un bel po 'di spigoli ed è meglio non usare MbUnit 3.0 ma usare il framework MbUnit 2.0 ma usare il gallio runner, che stai eseguendo senza installare dall'installer (che ha anche installato un plug-in Visual Studio) .

Per inciso, ho avuto il problema anche dopo che "disabilita" lui plugin Gallio. Solo la disinstallazione ha risolto il problema.

PS. A cura di nightcoder:
Nel mio caso disabilitare TypeMock Isolator (framework beffardo) finalmente ha aiutato ! Modifica & amp; Continua ora funziona !!!

Ecco la risposta dal supporto TypeMock:

  

Dopo aver esaminato ulteriormente la modifica   e continua l'emissione e la conversazione   a questo proposito con Microsoft, abbiamo raggiunto   la conclusione non può essere risolta   per isolatore. L'isolatore implementa a   Profiler CLR, e secondo il nostro   ricerca, una volta che un profiler CLR è   abilitato e collegato, modifica e   continue è disabilitato automaticamente.   Mi dispiace dire che non lo è più   considerato un bug, ma piuttosto un   limitazione di Isolator.

Altri suggerimenti

Soluzioni applicabili

Ecco un elenco non ordinato incompleto di possibili soluzioni da provare se * desideri correggere Modifica e continua:

  • Assicurati di essere in Modalità debug
  • Assicurati di non avviare un processo in modalità mista
  • Prova a impostare il target della CPU su x86 anziché AnyCPU (su macchine x64)
  • Deseleziona la casella di controllo Ottimizza codice per Modalità debug in Proprietà progetto- > Debug
  • Deseleziona Abilita ottimizzazioni in Impostazioni avanzate del compilatore
  • (ASP.NET) Controlla risposta del nightcoder se è il caso
  • (ASP.NET) Controlla questa risposta (per matrice) se è il caso
  • (ASP.NET) Assicurati di avere Modifica e continua nella scheda Web (vs2010)
  • (ASP.NET) Vai a Proprietà > Web > Server e assicurati che Abilita e continua sia selezionato in Usa Visual Studio Development Server .
  • (ASP.NET WebAPI) Assicurati di aver interrotto il metodo del controller utilizzando un punto di interruzione, prima di provare a modificarlo.
  • Vai a Strumenti > Opzioni > Debug > Generale e assicurati che Richiedi che i file di origine corrispondano esattamente alla versione originale non sia selezionato.
  • Stai utilizzando Microsoft Fakes? Inibisce Edit & amp; Continua.
  • Uccidi tutte le istanze * .vshost.exe selezionando Termina albero dei processi in Task Manager . VS rigenererà un'istanza corretta.
  • Rimuovi tutti i punti di interruzione con Debug- > Elimina tutti i punti di interruzione
  • Abilita e continua esiste in entrambi gli Strumenti > Opzioni > Menu di debug e anche nelle Impostazioni progetto . Assicurati di controllare entrambi i posti. modifica & amp; Continua non è supportato con l'impostazione Intellitrace estesa.
  • Assicurati Informazioni di debug in Proprietà progetto > Costruisci > Avanzato > Uscita > Informazioni di debug è impostato su Full
  • Alcuni plugin potrebbero interferire. Verificare disabilitando / disinstallando e quindi riprovando le altre soluzioni.
  • Se non stai prestando sufficiente attenzione, l'errore che ricevi durante il tentativo di risolvere questo problema potrebbe cambiare in qualcos'altro che è più facile da diagnosticare. Per esempio. Un metodo contenente un'espressione lambda non può supportare la modifica e il proseguimento.
  • Assicurati che la variabile di sistema COR_ENABLE_PROFILING non sia impostata su 1 . Alcuni profiler lo impostano durante l'installazione e lo lasciano così dopo la disinstallazione. Apri un prompt dei comandi e digita set per verificare rapidamente che il tuo sistema sia interessato, in tal caso rimuovi la variabile o impostala su 0 :

    • In Windows 8 e versioni successive, cerca Sistema (Pannello di controllo).
    • Fai clic sul link Impostazioni di sistema avanzate .
    • Fai clic su Variabili d'ambiente .
    • Rimuovi COR_ENABLE_PROFILING
  • Sii consapevole di scenari non supportati (come riportato nella domanda) e che modifiche non supportate .

* per 'tu', intendo il visitatore della pagina che sta martellando la testa su una tastiera per trovare la soluzione.

Sentiti libero di modificare questa risposta se hai altri suggerimenti!

Se stai eseguendo il debug di un'applicazione ASP.NET, vai su properties > web > Server e assicurati che " abilita e continua " è selezionato in Usa Visual Studio Development Server.

Ho avuto lo stesso problema. Ho anche reinstallato VS 2008 ma il problema non è andato via. Tuttavia, quando ho eliminato tutti i punti di interruzione, ha iniziato a funzionare.

Debug->Delete All Breakpoints

Penso che stesse accadendo perché avevo eliminato una pagina aspx che aveva dei punti di interruzione nel suo codice, e quindi ho creato un'altra pagina con lo stesso nome. Ciò probabilmente ha confuso il VS 2008.

Un paio di cose da controllare

  • Assicurati che la tua compilazione sia impostata su Debug vs. Release
  • Assicurati di non avviare un processo in modalità mista
  • Se su una macchina a 64 bit Assicurarsi di impostare la destinazione CPU su x86 anziché su AnyCPU

MODIFICA

Non credo che questo dovrebbe importare, ma assicurati che il processo di hosting sia abilitato per la piattaforma di destinazione. Probabilmente non aiuterà.

Se riprende per nuovi progetti, potrebbe essere qualcosa di ancora più sottile. Vorrei provare quanto segue.

  • HKCU di backup: \ Software \ Wow6432Node \ VisualStudio \ 9.0 (forse solo rinominandolo)
  • Elimina la stessa chiave
  • Riprova la riproduzione

Se il problema riguarda un'app ASP.NET, assicurarsi di aver modificato e continuare abilitato nella scheda Web (vs2010). C'era anche un'impostazione separata per il debug ASP.NET nelle versioni precedenti.

Saluti,

Adam.

Nessuna delle soluzioni di cui sopra ha funzionato per me (in esecuzione su una macchina 64x).

Alla fine ho fatto clic su 'impostazioni avanzate del compilatore' e UNCHECKED 'abilita ottimizzazioni ' e ora posso scorrere il codice e modificarlo durante il debug .

Ho scoperto che anche se sotto le proprietà del progetto build & amp; Le schede di debug sono impostate su Debug e tutte le altre impostazioni sono corrette Ricevo ancora il messaggio, tuttavia dopo aver scavato un po 'di più nel menu Genera, seleziona Gestore configurazioni ... e assicurati che Debug sia selezionato anche in due punti. vai a capire ... di quanti posti diversi hanno bisogno per impostare il debug ?????? anche se hai impostato Progetto - Configurazione su Debug, quindi sotto Build - Manager non è cambiato, quindi hai cambiato la stessa impostazione anche lì Configurazione progetto - sembra di nuovo un problema di Microsoft .......

Questo problema è dovuto all'impostazione di Intellitrace

Se Intellitrace è abilitato assicurarsi che solo l'evento Intellitrace sia selezionato

In caso contrario, ciò non consentirà la modifica e il proseguimento ..

Se si fa clic sulle opzioni di Intellitrace, verranno visualizzati gli avvisi.

Le seguenti riprese mi hanno aiutato a utilizzare VS2010:

vai su Strumenti, Opzioni, Debug, Generale e assicurati di " Richiedi i file di origine in modo che corrispondano esattamente alla versione originale " è deselezionato.

" Modifica e continua " ;, se abilitato, ti consentirà di modificare il codice solo quando è in modalità di interruzione: ad es. facendo sospendere l'esecuzione da un'eccezione o colpendo un punto di interruzione.

Ciò implica che non puoi modificare il codice quando l'esecuzione non è in pausa! Quando si tratta di progetti Web di debug (ASP.NET), questo non è molto intuitivo, poiché spesso si desidera apportare modifiche tra le richieste. Al momento, il codice del tuo debugging (probabilmente) non è in esecuzione, ma non è nemmeno in pausa!
Per risolvere questo problema, puoi fare clic su " Break all " (o premi Ctrl + Alt + Break ). In alternativa, imposta un punto di interruzione da qualche parte (ad esempio nel tuo evento Page_Load ), quindi ricarica la pagina in modo che l'esecuzione si interrompa quando raggiunge il punto di interruzione e ora puoi modificare il codice. Anche il codice nei file .cs .

Per me, per un motivo che non capisco, l'impostazione "Genera informazioni di debug" nelle " Impostazioni avanzate del compilatore " è stato impostato su "solo pdb" anziché " Completo " ;.

Per impostazione predefinita, questo parametro è sempre impostato su " Completo " ma un misterioso poltergeist ha modificato questo parametro ieri sera. :)

P.S. Sono in Visual Basic .Net con Visual Studio 2010

Ho riscontrato questo problema in Microsoft Visual Studio 2008 e la soluzione è semplice. quando esegui il tuo progetto, imposta in " Debug " modalità non " Rilascio " ;. La soluzione di un'altra gente può essere utile.

Ciò accade quando il debugger non ha raggiunto un punto di interruzione o non si è interrotto tutti (pausa). Non potrebbe essere così semplice, vero?

L'errore dice che una possibile causa è: " il codice in fase di debug è stato ottimizzato in fase di compilazione o di esecuzione " ;. Vai a Proprietà progetto- > Debug e deseleziona la casella Ottimizza codice per la modalità Debug.

Se creo un nuovo progetto, le modifiche durante il debug non funzionano. Se creo un nuovo sito Web, le modifiche durante il debug funzionano come previsto.

Alcune cose che sembravano aiutare a usare VS2010:

  • vai su Strumenti, Opzioni, Debug, Generale e assicurati di " Richiedi i file di origine in modo che corrispondano esattamente alla versione originale " è deselezionato.
  • è possibile lasciare più istanze di .vshost.exe ad es. scollegare il debugger VS da un processo interrotto. Ciò interferirà anche con i punti di interruzione e le compilazioni. Utilizzare Task Manager, scheda Processi per eliminare tutte le istanze di .vshost.exe facendo clic con il pulsante destro del mouse su ciascuna istanza e selezionando Termina struttura dei processi. VS creerà una nuova istanza.

Ho rimosso un set di dati dal mio progetto perché non l'ho usato. Successivamente ho potuto modificare il programma durante il debug.

Ho fatto tutte le modifiche menzionate in ogni altra risposta e nessuna ha funzionato. Cosa ho imparato? Abilita e continua esiste sia in Strumenti > Opzioni > Menu di debug e anche nelle impostazioni del progetto. Dopo aver controllato entrambi, Abilita e Continua ha funzionato per me.

Mi sono imbattuto in questo oggi - risulta che avere Debug Info impostato su solo pdb (o nessuno, immagino) impedirà a Edit e Continue di funzionare.

Assicurati che le tue informazioni di debug siano impostate su " completo " prima!

Proprietà del progetto > Costruisci > Avanzato > Uscita > Informazioni di debug

ciò che ha funzionato per me è stato deselezionare " Usa la modalità di compatibilità gestita " in

  

Strumenti - > Opzioni - > Debug

TBN: selezionando o deselezionando " Richiedi il file sorgente per abbinare esattamente la versione originale " sembra non influenzare l'E & amp; C

Spero che questo possa aiutare.

Abilita modifica e continua solo a eseguire IIS Express. Non lavorare in ISS locale o host esterno.

Nel mio caso basta ripristinare le impostazioni predefinite del debugger e impostare IntelliTrace- > solo gli eventi intellitrace aiutano

incorpora i tipi di interoperabilità visual studio deve essere impostato su false

L'ho fatto accadere in un file di classe collegato. Il resto del progetto ha permesso a E & C; ma ho avuto lo stesso errore durante la modifica del file collegato. La soluzione era quella di suddividere il file collegato nel proprio progetto e fare riferimento al progetto.

Ho riscontrato lo stesso problema. Il mio problema era che potevo modificare un file, ma non un altro (entrambi sono nello stesso progetto). Successivamente ho scoperto che anche il file che non potevo modificare faceva parte di un altro progetto. Che un altro progetto (Unit Test) non è stato caricato e che il debugger intelligente VS mostra l'errore che l'assemblaggio per questo dato file non è stato caricato e le modifiche non sono consentite. Che strano!

Quindi, ho dovuto scaricare il progetto unit-test e continuare il debug EnC.

Avevo un progetto di database nella soluzione che ha impedito la modifica del progetto webforms.

Ho fatto clic su " Unload " sul progetto del database e ora tutto funziona senza problemi.

Per VS2017 può aiutare a rimuovere il file .suo nella tua soluzione, ha funzionato per me. :)

Stavo affrontando lo stesso problema in Visual Studio 2005. La mia configurazione è a 64 bit. Funzionava bene su una delle soluzioni VS ma non sull'altra. Ho notato che solo abilitato " Abilita modifica e continua " per il progetto in cui volevo apportare modifiche in modalità debug. Questo finalmente risolto per me quando ho selezionato " Attiva e continua " anche per il mio progetto di avvio .

Non sono state apportate modifiche alla configurazione tranne l'abilitazione e la continuazione necessarie.

Sembra illogico, ma l'unico modo era disabilitare la modifica e continuare dalle opzioni VS 2017 ... Quindi AspNet modifica e continua hanno iniziato a funzionare ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top