2015-01-05 17 views
5

Sto usando l'anteprima di visual studio 2015 (v14) per scrivere un C# e mi sono chiesto cosa faccia effettivamente il compilatore di sfondo. Da quanto ho capito controlla lo stato dell'editor del codice ed è abbastanza intelligente da sapere quando smetto di modificare per alcuni millisecondi e poi ne approfitto per compilarlo e presentare gli errori/gli avvertimenti.comportamento del compilatore di sfondo in visual studio 2015

Penso che se si modifica parte del codice in un grande codebase e con molte dipendenze (molte altre parti dipendono da quel particolare pezzo di codice), il tempo di compilazione del compilatore di sfondo aumenterebbe. Ma se si tratta del caso di cui sopra o semplicemente di una semplice app della console del mondo, il tempo di compilazione è praticamente costante, ~ 2 secondi sulla mia macchina.

Ovviamente il compilatore non esegue una ricostruzione completa di tutto, ma come fa? Quale parte dell'API Roslyn è utilizzata? C'è qualche articolo là fuori che lo spiega? Hanno cercato ma non hanno trovato nulla.

risposta

3

Il compilatore in background utilizza Roslyn per ottenere il modello semantico per la struttura della sintassi supportata dal documento ed esegue la diagnostica di Roslyn per segnalare errori e avvisi.

Non tocca altro codice che dipende dal file.

+0

Tranne che per ottenere una semantica per un file, dobbiamo comunque guardare tutti gli altri file ... forse. –

+0

@JasonMalinowski: No; si guardano le dipendenze del file, non i suoi dipendenti. – SLaks

Problemi correlati