Window10下进行编译.NetCore5Preview

这几天看到.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版本的运行时。

        

         

 

至此,我们的编译过程就完成了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值