Come abilito la modifica dei file in modalità debug di Visual Studio?


144

C'è un modo per abilitare la modifica dei file durante il debug in Visual Studio? Ho deselezionato la casella di controllo "Richiedi che il file di origine corrisponda esattamente alla versione originale". Non fa differenza. Devo interrompere il debug per modificare i file. Molto noioso. Ho abilitato Modifica e continua. Stesso risultato Ho disabilitato Modifica e continua - Stesso risultato.


Non ho visto che hai modificato la tua domanda. Puoi risolverlo con una rapida reinstallazione.
Secko,

12
@Secko Non esiste una "reinstallazione rapida" quando parliamo di Visual Studio ...
Zero3

@ Zero3 C'erano ai miei tempi, circa 16 anni fa, quando lo usavo intorno a (int) 1999 - (int) 2000. Non lo uso da un (lungo) * tempo.
Secko,

Il vero problema qui è che l'impostazione "Modifica e continua" di Visual Studio non consente di modificare e continuare . Piuttosto, è una strana funzionalità che ti consente di modificare il codice, quindi cambia effettivamente il codice di esecuzione in modo che corrisponda alla modifica e debug da lì. Anche se fosse utile, raramente funziona. Avrebbe dovuto essere chiamato qualcosa come "modifica e ricompila al volo". La disattivazione consente di modificare effettivamente il codice mentre si esegue ancora il debug del codice compilato.
MGOwen,

Risposte:


234

Per quanto ne so, puoi deselezionare la casella di controllo "Modifica e continua".

Strumenti -> Opzioni -> Debug -> Modifica e continua> Abilita modifica e continua (deseleziona)


60
Questa è stata la soluzione per me - non ho idea del perché il controllo ONU "Modifica e continua" mi consentirebbe di modificare ... sembra controintuitivo. Ad ogni modo, lo segnerei come risposta.
Sam Schutte,

7
Contro-intuitivo, ma efficace.
Milne,

2
Ciò reagisce in modo diverso se il livello aziendale viene suddiviso in un progetto separato all'interno della soluzione. Prima che fosse diviso, ero in grado di modificare le classi durante il debug senza problemi. Sfortunatamente questa soluzione non mi ha risolto in questa situazione (sto usando VS2013)
Radderz

18
In Visual Studio 2015, ho trovato questa impostazione nella parte inferiore di Debugging-> General.
Zero3

13
Se stai provando a farlo, ma "Abilita modifica e continua" è disattivato, interrompi semplicemente il debug e torna alle opzioni.
Ravvy,

19

Espandendo sulla risposta corretta di Reed.

Quando in modalità debug la modifica di un file utilizza una funzione nota come Modifica e continua (ENC comunemente abbreviato). Ciò consente agli utenti di modificare il proprio programma mentre è in esecuzione nel debugger.

Quando ENC è abilitato, gli utenti possono eseguire un set limitato di modifiche sul proprio file. L'azione successiva che continua l'esecuzione del programma (F10, F5, ecc ...) comporterà l'applicazione delle modifiche al programma in esecuzione. Se ciò riesce, l'esecuzione del programma continuerà con il nuovo codice applicato.

Il debugger non consente le modifiche al file se ENC non è abilitato.

Ci sono alcuni motivi per cui ENC potrebbe essere disabilitato sul tuo computer

  • Alcuni profili non abilitano ENC per impostazione predefinita e devono essere esplicitamente abilitati
  • È possibile che tu sia in esecuzione su un sistema operativo a 64 bit e che l'app .Net sia impostata su "Qualsiasi CPU". ENC non è disponibile su 64 bit (limitazione CLR). Dovrai ripristinare l'app su x86 affinché ENC funzioni

8
Cosa succede se non ti interessa Modifica e Continua e vuoi solo programmare mentre l'app è in esecuzione in modo da poter vedere cosa deve essere fatto mentre lo stai facendo? È assolutamente irreale VS imporrebbe questa restrizione artificiale. Non è come se avesse bisogno di leggere i file sorgente mentre è in esecuzione. Non c'è motivo tecnico per cui dovrebbe essere necessario bloccare i file di origine. Xcode non ha problemi a permetterti di programmare mentre l'app è in esecuzione. Le modifiche non si applicano fino alla prossima esecuzione. Non c'è davvero modo di farlo in VS?
devios1

1
Se disabilito Modifica e Continua mi consente di modificare i file .cs mentre l'app è in esecuzione, ma blocca comunque i file .xaml. Sto cercando un modo per disabilitare completamente questo assurdo blocco.
devios1

7
Non mi permetterà nemmeno di aggiungere un file al progetto mentre l'app è in esecuzione! Non ti prendo in giro, 20-30 volte al giorno cerco di fare qualcosa e VS lo impedisce completamente. Dopo un breve momento "wtf" mi rendo conto che l'app sta eseguendo il debug e devo interrompere ciò che stavo facendo, uccidere l'app e quindi riprovare. Non posso lavorare in queste condizioni e sono davvero sorpreso che le persone non siano in armi per questo. Questo sta davvero uccidendo la mia produttività e spingendomi verso il muro. Ci deve essere un modo per risolvere questo problema!
devios1

1
@ devios1 Qualcosa che faccio spesso è solo eseguire senza debug (ctrl + f5) che è OK fintanto che non hai bisogno di punti di interruzione o altro.
binki,

@ devios1 Same. Spero che qualcuno (forse io) troverà il tempo di finire questa estensione. github.com/AndreasFurster/pause-edit-and-continue
Paul

8
  • Controllo ONU "Abilita modifica e continua" ( Tools -> Options -> Debugging -> Edit and Continue > Enable Edit and Continue)
  • Costruisci la tua app.
  • Eseguirlo.
  • Smettila.
  • RE selezionare "Abilita modifica e continua".
  • Costruisci la tua app.
  • Eseguirlo.
  • Prova a modificare i file durante il debug ora.

Questo ha funzionato per me. Credo che potrebbe essere un bug o un problema di sincronizzazione con Visual Studio 2015.


1
Caro downvoter, è buona norma lasciare un commento per PERCHÉ stai sottovalutando la risposta.
Francois Botha,

Questo non ha risolto per me, tuttavia la risposta più votata di seguito ha fatto.
Kairan,

6

Devi abilitare Modifica e Continua .


2
Inoltre, devi trovarti a un punto di interruzione o fare clic sul pulsante Pausa (Interrompi tutto).
McAden,

@marcc: E molte altre cose, motivo per cui ho indicato i documenti. Per l'elenco completo delle modifiche non supportate, consultare la sezione "Scenari non supportati" in questa posizione: msdn.microsoft.com/en-us/library/ms164927%28VS.80%29.aspx
Reed Copsey

4
La risposta di Seckos (la migliore) ha funzionato per me (VS2015) ed è esattamente l'opposto della tua risposta.
Alts

6

Da MSDN

Per abilitare / disabilitare Modifica e Continua

  • Apri la pagina delle opzioni di debug (Strumenti / Opzioni / Debug). Scorrere

  • fino alla categoria Modifica e continua. Per abilitare, selezionare Abilita Modifica

  • e continua la casella di controllo. Per disabilitare, deseleziona la casella di controllo. Nota. ...

  • Clicca OK.


5

di solito la modifica di un file durante il debug è possibile quando si è raggiunto un punto di interruzione (e solo allora).

Ci sono alcune restrizioni però: -il tuo nuovo codice deve essere compilato -non puoi cambiare il codice in una funzione che contiene espressioni lambda



2

Se hai attivato Modifica e Continua e stai utilizzando C #, puoi modificare un file solo se il debugger si è arrestato tramite un punto di interruzione o se hai interrotto manualmente l'app tramite "Interrompi tutto". Non sarai ancora in grado di modificare alcuni file, ad es. file xaml in un'app WPF, ma dovrebbe risolvere la maggior parte dei problemi.


1

Se la tua origine proviene da una dll decompilata, nota che i decompilatori possono aggiungere un'istruzione IgnoreSymbolStoreSequencePoints a assemblyinfo.cs:

[assembly: Debuggable (DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]

Questa riga deve essere rimossa per caricare il file pdb, facendo in modo che la modifica e continui a funzionare.


1

Rimuovere il segno di spunta sotto l'opzione funziona per me

Strumenti> Opzioni> Debug> Generale> Abilita modifica e continua

inserisci qui la descrizione dell'immagine

* Nota: in alcuni altri sistemi di sviluppo, l'aggiunta di questo segno di spunta ha eseguito il trucco.


1

Ho provato in questo modo e funziona per me. Vai a CSProj o file VbProj -> Scegli Asp.Net Development Server / IIS Express -> Debugger-> Abilita modifica e continua-> Salva ed esegui.

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.