2013-01-25 9 views
5

Non l'ho mai visto prima e non ho idea di cosa lo abbia causato.Visual Studio 2012 - Manca la variabile dalla finestra locale

Quando inserisco un punto di interruzione alla fine del codice di seguito, la variabile di ritardo trascorso non è elencata nella finestra dei locali. Se provo a guardarlo, il valore = "Il nome 'elapsedSeconds' non esiste nel contesto corrente". Come è possibile???

public ActionResult Index() 
{ 
    Stopwatch sw = Stopwatch.StartNew(); 

    var userID = WebSecurity.GetUserId(User.Identity.Name); 

    var model = ModelHelper.GetModel(userID); 

    long elapsedSeconds = 0; 
    elapsedSeconds = sw.ElapsedMilliseconds; 

    return View(model); 
} 
+3

È stato ottimizzato via in una build Release, perché non ha effetto? – RichieHindle

+0

Holy Crap .... a mia difesa è di mattina presto e non ho ancora avuto il caffè. Grazie a @RichieHindle. Per tutti quelli che si imbattono in questo ... ho solo bisogno di cambiare la configurazione della build per eseguire il debug ... duh. – SLoret

risposta

5

Selezionare la proprietà 'Ottimizzazione del codice' come "Disabilitato" nella finestra delle proprietà del progetto, nel caso in cui si desideri osservare il valore. È il processo di ottimizzazione del compilatore, che rende superfluo valutare tale variabile.

+0

È opportuno disattivare le ottimizzazioni in Configurazione debug. In caso di configurazione di rilascio di default è "Massimizza velocità" –

0

Ho ottenuto questo anche in un progetto Web. Né il riavvio di Visual Studio o altre soluzioni in questo thread l'hanno sovradimensionato.

La mia soluzione era di riavviare IIS. Dopo di che ho ricostruito il progetto, l'ho avviato e ho fatto lavorare di nuovo i locali.

0

Ricostruire la soluzione ha aiutato a riportare indietro la caratteristica variabile.

Problemi correlati