如何分析.NET跨平台中的Sake和KoreBuild

这篇文章给大家介绍如何分析.NET跨平台中的Sake和KoreBuild,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

为蔚县等地区用户提供了全套网页设计制作服务,及蔚县网站建设行业解决方案。主营业务为网站建设、成都网站制作、蔚县网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

最近在了解Asp.net Core 1.0(也可称为Asp.net5\Asp.net vNext)的跨平台,发现了两个新的新东西:Sake和KoreBuild(或者已经出了很久)。

通过国内某度查询资料大部分都是复制黏贴来的,几乎没有详细的介绍。

只好看源码,Sake可以到Github查到源码。

KoreBuild可以通过Nuget下载安装。

那KoreBuild和Sake是什么呢?他们和跨平台有什么关系呢?

首先是Sake

它是Asp.net vNext项目团队中某些人的一个周末项目。

由于msbuild对vNext项目的生成编译支持得不是太友好,所以Sake被创建出来。

Sake需要运行在CLR上。如果Sake想运行在Linux环境下,必需要有Mono(含MonoCLR)的支持。

另外目前CoreCLR还不够完善,或许在不远的将来,我们就可以彻底抛弃Mono了。

通过下面Sake的源码可以得知它在windows环境下还是是调用了msbulid.exe,在其他平台使用了xbuild工具进行生成。

Sake会在执行命令的当前目录下默认寻找名为“src”文件夹,对该文件夹下面的项目进行编译

Sake自身的项目文件还包括一堆.shade文件,shade文件是Sake生成和编译需要的执行脚本。

而KoreBuild,本身既是一个Sake的管理工具,可以利用KoreBuild安装Sake和其他Sake运行需要的环境。

也是Sake在执行编译生成时,能够提供Sake不具备的一部分.shade文件。

打开KoreBuild的安装路径,发现了KoreBuild.cmd文件和KoreBuild.cmd,和一推上面提到的Sake需要用到的shade文件。

众所周知

cmd是在windows环境下执行的命令文件;

sh是其他OS下的执行文件。

通过KoreBuild.cmd文件的最后一行发现在执行Sake.exe 把KoreBulid文件夹 当成 include-dir参数传进去,

显式指定Sake要使用的额外shade文件集合。

执行Sake.exe 的参数说明:

Usage: Sake [OPTIONS]+ [target]+

Options:
 -v, --verbose              increase verbosity
 -h, -?, --help             show this message and exit
 -f, --file, --makefile=VALUE read file as a makefile
 -C, --directory=VALUE      change current directory
 -I, --include-dir=VALUE    specifies a directory to search for included files 

另外KoreBuild会默认读取名为makefile.shade的脚本作为Sake首先要执行的脚本,通过-f参数传入,类似的makefile.shade文件如下

里面提到的use-standard-lifecycle.shade是包含在Sake项目下的,而k-standard-goals.shade是包含在KoreBuild中。

如果想另外添加需要编译的你的项目文件(不只是src路径下的项目),可以在makefile.shade文件后追加

    Sake是一款C#的跨平台编译器,可以运行在任何平台环境,以.shade文件(自身包含的或通过调用参数传入的如KoreBuild)为执行脚本对asp.net core项目进行编译,而KoreBuild是辅助Sake进行编译的工具。

关于如何分析.NET跨平台中的Sake和KoreBuild就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网站栏目:如何分析.NET跨平台中的Sake和KoreBuild
分享路径:http://scyanting.com/article/pdhgoe.html