我正在使用Visual Studio 2015(v14)的预览版编写一些C#,我一直想知道后台编译器实际上是做什么的。根据我的理解,它检查代码编辑器的状态,并且足够聪明,可以知道何时停止编辑几毫秒,然后趁此机会对其进行编译并提出错误/警告。

但是,如果我在大型代码库中编辑部分代码并具有很多依赖性(许多其他部分依赖于该特定代码段),则后台编译器的编译时间会增加。
但是,无论是上述情况还是简单的hello world控制台应用程序,编译时间都非常稳定,在我的计算机上约为2秒。

显然,编译器不会完全重建所有内容,但是它是如何做到的呢?使用了Roslyn API的哪一部分?那里有一些文章对此进行解释吗?搜索过,但一无所获。

最佳答案

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

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

10-05 22:44
查看更多