.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 本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。

相關文章
相關標籤/搜索