这几天看到.NetCore发布了5.0的预览版,在学习的过程中看到官方给的教程可以进行自己编译一个DUBG版本,所以就抱着尝试的心理按照步骤进行操作;编译源码生成一个DEBUG版本的运行时主要是为了能够调试源码,有符号表的话,我们便于调试,便于我们在调试过程中了解底层的运行机制。
我使用的window10-2019企业版本LTSC,版本号1809 操作系统版本为17763.1098。
现在我们开始进行准备环境及工具阶段了:
-
1、首先要在系统中设置,启用长路径:本地组策略-->计算机配置-->管理模板-->系统-->文件系统-->启用win32长路径;
-
2、使用管理员权限在终端命令窗口输入:
git config --system core.longpaths true
-
3、Visual Studio2019 安装一些必要的环境组件;其中在工作负载选项中,选中【.NET 桌面开发】、【C++桌面开发】。
-
4、下载安装Python安装包;这里官方建议使用3.7.4以上。我选择的3.8.2。注:在安装将添加的环境变量勾选上。
-
5、安装CMake,CMake就是用于管理makefile文件,在CoreCLR中会用到,但是我这里安装的Vs2019中就有CMake,所以没有安装。
以上就是在编译源码前所要做的工作了,完成上述步骤后,我们就可以去GitHub的站点上拉取数据,然后开启编译源码之旅了。
源码地址:https://github.com/dotnet/runtime
这里说一下源码中的几个文件夹:
-
docs文件夹主要是用于对项目的一些描述的内容及用法,都是md文件。
-
eng文件主要是对于构建、测试.Netcore的脚本文件。
-
src文件夹就是全部的源码。
-
tools-local文件夹主要是用于辅助生成安装文件的工具。
当我们将源码下载完毕后,我们就可以进行编译了,从官方给出的文档,我们在docs-->workflow
-->README.md文件可以看出,在windows、Linux、MacOS下如何构建生成。
这里我们主要是在Windows下进行编译,所以我们只使用Windows下的构建命令。
-
1、我们使用终端管理进入到runtime文件夹下,输入如下命令
.\build.cmd -?
就能得到如下图所示: -
这里有几个常用的命令,我用红框标记了一下,由于我们的runtime仓库目前有4个项目,如果我们不想一次性进行全部构建,我们只需要构建其中的一个就用到如下命令:
-subsetCategory coreclr
表示只是构建coreclr项目。-restore
表示还原环境组件及依赖。-build
表示进行生成我们的项目。-clean
表示清理已经生成的环境数据,当我们如果编译遇到问题,则我们可以使用该命令进行将原来生成的清理,然后进行重新生成。 -
2、这里我们只构建coreclr,使用命令
.\build.cmd -subsetCategory coreclr
然后我们等待构建完成即可。但是这里会下载很多的依赖包,下载依赖包的时间由网络连接情况决定的。当所有的依赖包下载完毕,编译时间大概是10分钟左右。编译完成后会在文件夹runtime-->artifacts生成一个如下的文件夹。编译后的文件在artifacts\bin\coreclr\Windows_NT.x64.Debug
,如果整个过程在最后没有出现错误,则我们的编译就顺利完成了。注:这里首先会进行编译依赖环境的还原,在还原过程中会下载很多的工具及依赖包,很可能出现下载超时的现象,导致编译失败。
-
3、当我们将coreclr项目构建完毕,就可以按照同样的方法进行构建libraries项目。同样的构建等待构建编译完成。
-
4、最后我们将installer项目构建,构建完毕后就会生成一个我们与官网一样的安装包,是DEBUG版本的运行时。
至此,我们的编译过程就完成了!