关于获取C# 9编译器的适配编译器版本及源码编译相关开源仓库的咨询
关于C# 9编译器的相关问题解答
1. 获得C# 9编译器所需的工具及版本
C# 9.0是和.NET 5同步发布的,要拿到对应的编译器,你需要以下这些工具的指定版本:
- Visual Studio:至少得是Visual Studio 2019 v16.8版本(16.8正式把C# 9支持纳入,后续更新的版本当然也兼容)
- .NET SDK:.NET 5 SDK及以上版本就行,因为C# 9编译器直接集成在这个SDK里,用
dotnet build或者直接调用csc命令就能用 - Roslyn单独编译器:如果是单独用Roslyn核心的话,需要Roslyn 3.8及以上版本,Roslyn 3.8就是对应C# 9支持的版本
2. 从源码编译C# 9编译器的仓库及许可证说明
如果完全不想用微软的二进制包,要从源码编译整套工具,你得编译以下几个核心仓库,而且它们全都是开源的:
- Roslyn仓库:这是C#和VB编译器的核心实现,C# 9的所有编译逻辑都在这里面,采用MIT开源许可证
- .NET Runtime仓库:Roslyn编译和运行本身依赖.NET Runtime的基础组件,所以得先编译对应.NET 5版本的Runtime,许可证同样是MIT
- .NET SDK仓库:要是想构建出能直接用的完整.NET SDK(包含C# 9编译器),还得编译这个仓库,它负责把Roslyn、Runtime等组件整合起来,许可证也是MIT
编译顺序注意事项
确实得按依赖层级来一步步来,不然容易出问题:
- 先编译.NET 5版本的Runtime,这是最底层的依赖
- 再用刚编译好的Runtime去编译Roslyn 3.8+版本(对应C#9)
- 最后编译.NET 5+版本的SDK,把前面的成果整合进去
提醒下,从源码编译的流程细节挺多的,一定要严格跟着每个仓库里的编译文档步骤来,版本匹配很关键,不然容易踩坑。
内容的提问来源于stack exchange,提问作者user3161761
相关产品推荐
相关产品推荐

