2015-01-05 5 views
5

Ich verwende die Vorschau von Visual Studio 2015 (v14), um einige C# schreiben und ich habe mich gefragt, was der Hintergrund Compiler tatsächlich tut. Nach meinem Verständnis überprüft es den Status des Code-Editors und ist schlau genug zu wissen, wann ich die Bearbeitung für einige Millisekunden stoppe und dann die Gelegenheit nutze, es zu kompilieren und die Fehler/Warnungen zu präsentieren.Verhalten von Hintergrund Compiler in Visual Studio 2015

Ich dachte, dass, wenn Teil Code in einer großen Code-Basis und mit vielen Abhängigkeiten bearbeiten (viele andere Teile hängen von diesem bestimmten Stück Code), würde die Kompilierzeit des Hintergrund Compiler erhöhen. Aber ob es der obige Fall oder nur eine einfache Hallo Welt Konsole App ist, ist die Kompilierzeit ziemlich konstant ~ 2 Sekunden auf meinem Rechner.

Offensichtlich macht der Compiler keinen vollständigen Wiederaufbau von allem, aber wie macht es das? Welcher Teil der Roslyn API wird verwendet? Gibt es einen Artikel, der das erklärt? Habe gesucht aber nichts gefunden.

Antwort

3

Der Hintergrundcompiler verwendet Roslyn, um das semantische Modell für den von Ihrem Dokument unterstützten Syntaxbaum abzurufen, und führt die Roslyn-Diagnose aus, um Fehler und Warnungen zu melden.

Es berührt keinen anderen Code, der von Ihrer Datei abhängt.

+0

Außer, Semantik für eine Datei zu bekommen, müssen wir uns noch alle anderen Dateien ansehen ... vielleicht. –

+0

@JasonMalinowski: Nein; Sie sehen sich die Abhängigkeiten der Datei an, nicht ihre Abhängigen. – SLaks