.NET跨平台之Sake和KoreBuild

 

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

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

只好看源码,Sake能够到Github查到源码。windows

KoreBuild能够经过Nuget下载安装。asp.net

 

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

首先是Sakepost

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

因为msbuild对vNext项目的生成编译支持得不是太友好,因此Sake被建立出来。ui

Sake须要运行在CLR上。若是Sake想运行在Linux环境下,必须要有Mono(含MonoCLR)的支持。this

另外目前CoreCLR还不够完善,或许在不远的未来,咱们就能够完全抛弃Mono了。spa

clipboard[1]

经过下面Sake的源码能够得知它在windows环境下仍是是调用了msbulid.exe,在其余平台使用了xbuild工具进行生成。

clipboard[2]

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

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

clipboard[3]

而KoreBuild,自己既是一个Sake的管理工具,能够利用KoreBuild安装Sake和其余Sake运行须要的环境。

是Sake在执行编译生成时,可以提供Sake不具有的一部分.shade文件。

clipboard[4]

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

clipboard

众所周知

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

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

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

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

clipboard[5]

执行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文件以下

clipboard[6]

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

若是想另外添加须要编译的你的项目文件(不仅是src路径下的项目),能够在makefile.shade文件后追加

clipboard[7]

 

 

总结:

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

 

以上有错误的地方还望指出。

 

相关资料:

 

做者:B.it

技术收录网站:核心技术(http://www.coretn.cn)
出处:http://www.cnblogs.com/ImBit/p/5307762.html 本文版权归做者和博客园共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接。

相关文章
相关标签/搜索