.NET Compiler Platform SDK 与 C# 和 Visual Basic Roslyn 编译器之间的区别

Difference between `.NET Compiler Platform SDK` & `C# and Visual Basic Roslyn compilers`

在我的 Visual Studio 2017--15.8.5 的 Individual Components 选项卡上,我有两个编译器或至少两个复选框。老实说,即使我有很多时间使用 VS,我也不知道这两个编译器的区别。我 google 它但是我没有找到关于什么是第一个或第二个以及这两者有什么区别的明确解释。

我想扩展我在 .Net 方面的知识,它可能对我有很大帮助。

编译器只是试图将您的代码编译为 .NET 中的 IL。在编译期间,编译器为输入代码构建了几个不同的表示:AST、语义模型等,以在代码下应用不同的分析。

而不是 .NET Compiler Platform SDK 提供对编译器构建的模型的访问,API,允许用户构建自定义分析器,代码修复和许多其他改进。顺便说一句,sdk 有几个额外的 API,例如 API 来处理项目的系统,这不是编译器构建的模型,而是构建系统构建的模型(MsBuild), 并且包含一个有用的东西帮助用户编写他们自定义的分析器:SyntaxVisualizer, 模板等等。有关 SDK 的更多详细信息,您可以找到 here