13

Utilizzo VS 2015 Update 2 con un progetto Web asp.net 5 configurato per la modalità di debug. Quando eseguo il progetto con F5 per eseguirne il debug e raggiungere un punto di interruzione, alcune variabili non possono essere osservate nella finestra di controllo anche quando sono in ambito. Inoltre, se passo il mouse su tali variabili non viene visualizzato alcun valore.VS 2015 Update 2 - La variabile non esiste quando si esegue il debug, perché?

Se utilizzo lo stesso Visual Studio per creare un progetto Web vuoto e aggiungere un modulo Web e inserire il codice nel metodo di caricamento, il debugger funziona correttamente. Vale a dire, posso vedere le variabili nella finestra di controllo e posso vedere i loro valori aleggiando su di loro. Ne deduco che la causa principale del problema non è VS2015 Update 2, ma piuttosto qualcosa che riguarda la configurazione del progetto o della soluzione, forse specifica dei progetti web di asp.net 5.

Ho sondato il web per trovare risposte e problemi simili quando si tenta di eseguire il debug del codice ottimizzato per il compilatore. Ma sto eseguendo la soluzione in modalità di debug. Eventuali suggerimenti?

Screenshot of error

Sono consapevole del Variable does not exist in the current context while debugging ma si applica a una versione diversa di Visual Studio e le soluzioni offerte lì non risolvere il mio problema.

+0

sembra che sia ottimizzato via perché 'list' è di dimensione locale e non avete mai usarlo dopo DoSomething()' restituisce ', quindi non c'è alcun punto di avere esso. Fai qualcosa con 'list' prima di' i ++ 'e vedi se questo cambia qualcosa. (Un semplice messaggio che mostra uno degli elementi in 'list' funzionerà.) –

+0

Ken White - Sono d'accordo, è stato ottimizzato. La domanda è perché e come faccio a far sì che il compilatore non lo ottimizzi ... sono in modalità debug dopotutto? –

+0

Sto avendo lo stesso problema dall'aggiornamento 2! – davenewza

risposta

7

Questo è un bug introdotto in Visual Studio 2015 Update 2. In sostanza, il debugger non è in grado di esaminare le variabili locali nei moduli dinamici. Abbiamo rilasciato un hotfix per oggi. È possibile scaricare la patch here. La documentazione per la patch è here. Fammi sapere se la patch non aggiusta il tuo particolare scenario.

Grazie!

-Patrick Nelson

+0

Grazie mille per il vostro aiuto. Purtroppo, questa patch non ha risolto il mio problema. Ho installato la patch e ho eseguito il mio stesso test e ricevo comunque un messaggio che la variabile non esiste nel contesto corrente e quando si posiziona il mouse su Vars durante il debug non viene visualizzato alcun valore per essi. Ho quindi provato a disinstallare la patch e reinstallarla e riavviare il computer, ma la patch sembra non avere alcun effetto per me. –

+0

Puoi condividere un progetto in modo da poter indagare? –

+0

Sarei felice di. Qual è il modo più semplice per ottenere da te? –

11

Ho avuto lo stesso problema. Alla fine ho notato che alcune impostazioni sono diverse dopo l'aggiornamento 2.

È necessario andare in Strumenti -> Opzioni -> Debug -> Generale e quindi selezionare "Usa modalità di compatibilità gestita".

Questo ha funzionato per me.

+1

Danny, grazie per questa risposta. Posso confermare che questo è un modo per risolvere il mio problema, ma lo fa usando il motore di debug legacy invece di correggere la configurazione del moderno motore di debug. Inoltre, questa risposta non spiega perché lo stesso codice di debug in due diversi tipi di progetto con lo stesso studio visivo si comporta in modo diverso per quanto riguarda se le variabili esistono nel debugger. Per questi motivi ho scelto di non accettare ancora questa risposta e sto aspettando di vedere se qualcun altro ha una soluzione migliore. Tuttavia, apprezzo la tua risposta. –

+0

concordato. La patch è molto meglio. :) –

+0

Ha funzionato per me (vs2015) –