Visual Studio 2015中后台编译器的行为

Bal*_*kas 5 c# compiler-construction visual-studio roslyn

我正在使用visual studio 2015(v14)的预览来编写一些C#,我一直想知道后台编译器实际上做了什么.根据我的理解,它检查代码编辑器的状态,并且足够聪明,知道何时停止编辑几毫秒,然后利用机会编译它并显示错误/警告.

我认为,如果在大型代码库中编辑部分代码并且具有大量依赖性(许多其他部分依赖于该特定代码段),则后台编译器的编译时间会增加.但无论是上述情况还是只是一个简单的hello world console应用程序,编译时间都非常不变,在我的机器上大约需要2秒.

显然,编译器不会对所有内容进行完全重新构建,但它是如何做到的呢?使用Roslyn API的哪一部分?那里有一些文章在解释这个吗?搜索但没有找到任何东西.

SLa*_*aks 3

后台编译器使用 Roslyn 获取文档支持的语法树的语义模型,并运行 Roslyn 的诊断来报告错误和警告。

它不会触及依赖于您的文件的其他代码。