Il progetto Visual Studio 2015 non viene più eseguito in modalità di debug


95

Questo è ciò che ottengo anche quando eseguo nella configurazione di debug:

Il modo in cui l'ho mostrato è stato abilitando "Solo il mio codice" e avvisando se non è presente alcun codice utente all'avvio. Questo è qualcosa che è successo di recente al nostro progetto e non sono sicuro di cosa abbiamo fatto per causare questo. Ma non sono riuscito a risolverlo. I punti di interruzione non si attivano e la visualizzazione rapida dà risultati strani.

Ho provato a cercare su Google il problema, ma nessuna delle soluzioni standard "i punti di interruzione non si attivano" ha funzionato. Ho finito le idee.

Ho controllato il gestore di configurazione e anche ogni progetto è impostato su Debug anche lì.

Inserisci qui la descrizione dell'immagine

Ho disattivato "Abilita ottimizzazioni" e non viene più visualizzata la finestra di dialogo "Stai eseguendo il debug di una build di rilascio". Funziona e si ferma di nuovo sui punti di interruzione! Tuttavia, la finestra di output lo mostra all'avvio:

I simboli per il modulo "Navigo.exe" non sono stati caricati.

  1. Utilizzare una configurazione di build di debug o disabilitare l'opzione di debug "Abilita Just My Code".
  2. Controlla le impostazioni "Simboli" nelle opzioni di debug.

Quindi questo risolve il mio problema principale di non essere più in grado di utilizzare i punti di interruzione e il popup. Il che è strano dato che pensavo che avessi bisogno di simboli da caricare affinché i punti di interruzione funzionassero. Quindi come possono funzionare i punti di interruzione se i simboli non vengono caricati? Forse è solo un brutto messaggio?


Quindi, in poche parole, hai avuto qualche tipo di problema di cui non siamo a conoscenza. E hai modificato le impostazioni del debugger globale e ora hai due problemi. Rimetti tutto com'era e descrivi il tuo primo problema.
Hans Passant

@ HansPassant questo è il problema originale. Sembra che abbia iniziato a succedere una volta che abbiamo aggiornato per utilizzare VS2015. Avevo annullato tutte le mie modifiche "funzionerà" prima della pubblicazione. Deselezionare "Ottimizza codice" sembra aver aiutato. Vedere l'aggiornamento 2 in questione per maggiori dettagli.
Sen

Puoi spiegare qual è la tua soluzione? quali sono i progetti, in quali lingue si trovano, a cosa si rivolgono, qual è il progetto di avvio?
Lucian Wischik

Abilita di nuovo Just my Code. Stai tentando di eseguire il debug di assembly referenziati di cui non hai il codice sorgente?
Igor Quirino

Risposte:


95

Utilizzare il Configuration Manager per verificare quali sono le impostazioni effettive per la configurazione di debug - è nel menu BuildConfiguration Manager ... - nel caso in cui siano impostati per utilizzare Release :

Configuration Manager

Inoltre, assicurati che il progetto definisca DEBUG correttamente e che "Ottimizza codice" non sia selezionato:

Proprietà


2
Ho appena controllato lì e sono tutti impostati su Debug. Ho aggiornato il post con uno screenshot. Altre idee?
Sen

1
ha modificato la mia domanda. L'ottimizzazione del codice è stata selezionata, deselezionandola sembra aver aiutato. Ma vedi la domanda per i dettagli.
Sen

1
@Sen Sembra che qualcuno abbia configurato male le impostazioni della build di debug. Una build di debug con codice ottimizzato non ha alcun senso. Per quanto riguarda il problema dei simboli: forse qualcuno ha disabilitato quelli per la build di debug? Premi il pulsante "Avanzate" nelle impostazioni di build e controlla che "Debug Info" sia impostato su "full" nella build di debug.
cremor

6
Deselezionare il codice Optimize ha funzionato. Non sono sicuro di come sia andato controllato all'inizio, ma una volta spento tutto sembrava ricominciare a funzionare. Tutte le altre impostazioni di debug erano corrette, questa era l'unica fuori controllo. Inoltre non ricevo più il messaggio "Simboli non caricati".
Sen

94

Questo è successo anche a me in un paio di progetti. Ho rivisto le mie impostazioni di build, come suggerito da stuartd . Tuttavia, "Ottimizza codice" non era abilitato nelle mie impostazioni di build. Quindi l'ho abilitato e ho salvato il progetto. Quindi l'ho deselezionato e ho salvato di nuovo. Problema risolto.

C'è qualche tipo di bug che causa il passaggio del --optimize+flag al debugger. Abilitarlo e quindi disabilitarlo è una soluzione semplice fino a quando il bug non viene risolto.


1
L'ho già visto nell'IDE IntelliJ, ma fino ad ora mai in Visual Studio. Stranamente, questo ha funzionato anche per me.
ZaneDarken

1
Aggiornamento 2017: viene ancora visualizzato questo problema in Visual Studio 2015 Update 3. La risposta accettata non ha risolto il problema; questa risposta ha fatto.
Lews Therin

1
Questa risposta ha anche corretto il mio ambiente di debug. Grazie !
bob.mazzo

1
Wow! Ho avuto questo problema esatto e ha funzionato anche per me. VS 2015 U3. Incredibile ...
AbeyMarquez

1
Comunità VS2017, ancora con questo problema. grazie per questa soluzione
William Borgo

20

Questo ha iniziato ad accadermi dopo aver applicato l'aggiornamento 1. I progetti esistenti hanno iniziato a mostrarlo e posso replicarlo con un progetto nuovo di zecca. Tutta la configurazione è impostata su DEBUG e Optimize non è selezionato.

Il kicker è che l'esecuzione del progetto la prima volta (o dopo un Clean) funziona bene, senza alcun messaggio. Arrestare e quindi rieseguire il progetto (nota: il progetto non è ricostruito ) visualizzerà la finestra di dialogo.

L'unica soluzione è disattivare l' opzione Just My Code , che sembra un hack, come lo era prima dell'aggiornamento 1 senza problemi.


6
Per quello che vale, il supporto Microsoft ha riprodotto il problema e sta indagando. Non appena saprò, riferirò / risponderò.
John T

2
Stessa situazione e sintomi qui, apparsi dopo l'aggiornamento di VS2015 1. L'esecuzione di una pulizia prima di ogni sessione di debug può essere utilizzata come soluzione alternativa perché in effetti funziona correttamente la prima volta dopo. Basta fare una ricostruzione è non è sufficiente, il Clean è richiesto.
AronVanAmmers

2
La parola da parte di Microsoft è che si tratta di un problema noto (originariamente era indirizzato al team del debugger, ma è stato determinato che si trattava di un problema di build ed è ora nelle mani del team del sistema di progetto. Ci sono altri bug aperti su questo problema ed è classificato come Priorità 1, quindi dovrebbe essere sulla buona strada per il prossimo aggiornamento. Anche se, come ci si aspetterebbe, non si possono fare promesse su quando verrà rilasciato (o cosa c'è effettivamente nell'aggiornamento). Quindi è noto e sta funzionando On. Almeno disattivare "Abilita solo il mio codice" nelle Opzioni generali di debug sembra essere una soluzione per ora.
John T

C'è un collegamento a questo problema in modo che possiamo seguirne i progressi?
SkyrawrCode


13

Se nessuna delle soluzioni menzionate ha aiutato, controlla il file AssemblyInfo.cs del tuo progetto per l'applicazione DebuggableAttribute esplicita. Sembra che sovrascriva le opzioni di debug / rilascio del compilatore.

Avevo questa riga nel file nel mio caso (progetto legacy, non ho idea di come sia arrivato lì). L'eliminazione ha risolto il problema:

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

2
Grazie per questo. Sto lavorando a un progetto in cui il mio cliente ha perso il codice sorgente originale, quindi ho dovuto generarlo utilizzando un decompilatore. La mia unica ipotesi è che il decompilatore abbia inserito questa riga.
jebar8

Sì, potrebbe essere la ragione anche nel mio caso. Grazie per la condivisione.
Dmitry Rotay


9

Ho riscontrato anche questo problema. La correzione che ha funzionato è stata semplicemente pulire ( Build > Clean Solution) e ricostruire ( Build > Rebuild Solution) i miei progetti.


Puoi elaborare? Ad esempio con come farlo (comandi di menu da richiamare, ecc.)?
Peter Mortensen


3

Basta aggiungere una nota a margine alla risposta di stuartd :

Assicurati di controllare tutti i progetti dipendenti per le stesse impostazioni di compilazione. Verrà visualizzato lo stesso messaggio di richiesta se il progetto principale ha le impostazioni corrette, ma i progetti dipendenti no. Ha senso con il senno di poi, ma non è stata la prima cosa che mi è venuta in mente.


3

Nel mio caso il problema era che l' URL del progetto IIS nella scheda Web delle proprietà del progetto ASP.NET era impostato sull'URL sbagliato.

Indicava http: // localhost che stavo usando con una copia diversa del progetto. L'indirizzo per la soluzione che avevo aperto era effettivamente configurato sul mio IIS locale come http: // localhost: 90 .

Il passaggio all'indirizzo corretto ha risolto il problema.

Inserisci qui la descrizione dell'immagine


2

Ho provato praticamente tutto in questo elenco, ma alla fine ho risolto il problema aprendo le proprietà della soluzione e passando da "Progetti di avvio multiplo" a "Progetto di avvio singolo" e viceversa.

  1. Fare clic con il tasto destro sulla soluzione e scegliere "Proprietà"
  2. In "Proprietà comuni" cambia la selezione "Più progetti di avvio" in "Progetto di avvio singolo"
  3. Fare clic su OK
  4. Esegui il debug
  5. Termina il debug e ripeti i passaggi 1-3, ma torna a "Più progetti di avvio"
  6. Esegui di nuovo il debug con più progetti

2

Ho avuto lo stesso problema ... Non importa quello che ho fatto, niente ha funzionato.

Il problema era un nuovo progetto vuoto. Ho finito per rimuovere il progetto e aggiungerne uno nuovo : il nuovo progetto doveva avere un altro nome ; se ho usato lo stesso nome l'errore è appena ricomparso - anche dopo un riavvio, pulire e ricostruire ... Deve essere un bug in Visual Studio 2015.


2

Per me, era un riferimento NuGet da un server NuGet privato. Non so come sia stato compilato, ma la modifica del riferimento a un riferimento di progetto mi ha permesso di superare il problema.


1

Ho aperto il mio progetto Visual Studio 2012 Pro in Visual Studio 2015 Express e ho riscontrato lo stesso problema.

Ho controllato le proprietà della soluzione → Proprietà di configurazione e ho scoperto che un progetto era impostato su Release e x86.

L'ho cambiato di nuovo in Debug e Any CPU e il prompt è sparito.


1

Nel mio caso, stavo sviluppando un plug-in VSTO per Outlook e Outlook caricava accidentalmente la versione di rilascio del file DLL che ho installato di recente durante il test del mio programma di installazione.

Sembra che Visual Studio stesse cercando di utilizzare quella DLL invece di quella di debug che mi aspettavo. La correzione del file DLL caricato da Outlook ha risolto il problema.


0

Copiando la mia altra risposta da qui .

Come accennato da @romanoza, Microsoft ha aggiornato la segnalazione di bug con le seguenti informazioni:

Deseleziona l'impostazione Debug -> Opzioni -> Sopprimi ottimizzazione JIT al caricamento del modulo (solo gestito)

Questa è la soluzione. Continuano a dire più tardi:

Consigliamo alle persone di lasciarlo deselezionato poiché averlo deselezionato migliorerà sia le prestazioni che il comportamento del solo codice in scenari specifici.

Infine, il riconoscimento:

È un bug che non funziona con quell'impostazione abilitata e stiamo lavorando a una correzione per quella situazione nel caso in cui alcuni clienti vogliano ancora eseguire il debug con quell'impostazione attivata.




0

Passaggi di risoluzione:

  • Vai alla Corporatura impostazioni del progetto incriminato Proprietà pagina.

  • Scorri verso il basso fino al pulsante "Avanzate ..." .

  • Assicurarsi che “Debug Info:” è non è  impostato su “none” .

    Ti consiglio di utilizzare l' opzione completa .


Ricorda di farlo per tutti gli assembly di cui vuoi eseguire il debug.
Igor Quirino

0

Dopo aver visualizzato il collegamento di Patrick come commento alla domanda , qualcuno ha notato una soluzione alternativa che consisteva nell'arresto del sito in IIS Express . Sono stato in grado di evitare che si presentasse lo stesso problema eseguendo proprio questo dopo aver arrestato il debugger in Visual Studio.

Tuttavia, stavo esaminando di più e credo che potrebbe anche essere correlato all'impostazione "Modifica e continua" per il debugger. Quando l'ho disabilitato nel menu StrumentiOpzioni ... di Visual Studio, non ho più avuto il problema. Ma questo ti impedirebbe di utilizzare la funzione Modifica e continua , quindi non sono sicuro che ne valga la pena.

Menu StrumentiOpzioniDebuggerModifica e continua (scorri fino alla fine dell'elenco Generale) → deseleziona il Modifica e continua .

Ho anche sperimentato questo improvvisamente dopo aver installato l'aggiornamento 1, ma potrebbe essere solo che avevo questa impostazione in primo luogo ... Non sono sicuro però.


0

Nel caso in cui hai solo bisogno di andare avanti senza ulteriori ritardi, seleziona l'ultima opzione dal popup e tutto funzionerà come prima.

Inserisci qui la descrizione dell'immagine


Le immagini JPEG non sono la scelta migliore per gli screenshot. Puoi sostituirlo con una versione PNG (o anche GIF) (nitida)?
Peter Mortensen

0

Questo era uno strano avviso.

La ricostruzione della soluzione non cancellerà necessariamente tutti i file DLL (specialmente quelli copiati da progetti dipendenti).

Tuttavia, la ricostruzione del progetto di dipendenza ha eliminato questo avviso.

Ho affrontato questo problema con Visual Studio 2015 Update 3.


0

La mia soluzione era un po 'diversa da tutte le altre ed è un po' unica.

Sto lavorando con un sito Web che contiene un mix di codice gestito e ASP Classic , che fanno entrambi riferimento allo stesso assembly. Visual Studio si lamentava del fatto che il mio file DLL gestito fosse una build di rilascio.

Il problema era un'eccezione non rilevata nel mio assembly, ma veniva generata da una pagina ASP Classic tramite interoperabilità. Visual Studio non è stato in grado di gestire il debug e ha visualizzato il messaggio di errore. La stessa eccezione generata dal codice gestito avrebbe attivato il debugger come previsto.

La correzione del problema nel costruttore del mio assembly gestito ha risolto tutto.

Tutto ha senso ora che guardo indietro al quadro generale, ma a quel tempo, il messaggio di errore mi ha portato su un sentiero molto profondo, e ho provato di tutto nella risposta qui fino a quando non ho avuto quel "Ah-ha!" momento.


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.