初识ASP.NET 5中的Sake与KoreBuild
从github上签出基于ASP.NET 5的MVC 6的源代码进行编译,发现有2个编译命令:

build.cmd是针对Windows的编译命令,build.sh是针对Mac/Linux的编译命令,这本来没什么稀奇,但是打开这2个文件一看:
build.cmd:
packages\Sake\tools\Sake.exe -I packages\KoreBuild\build -f makefile.shade %*
build.sh:
mono packages/Sake/tools/Sake.exe -I packages/KoreBuild/build -f makefile.shade "$@"
令人奇怪的是在build.cmd(针对Windows)中没有使用msbuild,而用的是Sake,更奇怪的是build.sh(针对Mac/Linux)下用的也是Sake,并且都用到了KoreBuild。
Sake是什么?KoreBuild又是什么?好奇心油然而生。
在github上找到了Sake的老巢 —— https://github.com/sakeproject/sake
Welcome to Sake, a C# language enabled make system.
原来Sake是用C#编写的编译生成工具,或者可以这么理解:一个C#编写的开源的msbuild替代品。
那Sake为何而生?
.NET平台上一统江湖的编译生成工具非msbuild莫属,但msbuild有个天生的缺点——不能跨平台。而.NET跨平台已经是铁板钉钉,跨平台的编译生成工具必不可少,而开发这样的跨平台工具成本最低效率最高的方法是用C#开发,于是Sake应运而生。
为了证实是否真的能跨平台,在写这篇博客之前我特地在Mac上git签出MVC 6的源代码进行编译:
a) 操作命令
git clone https://github.com/aspnet/Mvc
cd mvc
sh build.sh
b) 编译生成过程中的部分提示

c) 编译生成成功之后,在artifacts/build文件中生成的nuget打包文件

一次成功!
那KoreBuild是什么呢?
网上关于KoreBuild的资料几乎没有,KoreBuild的身影主要出现在github上ASP.NET 5的相关项目中。
打开MVC6的packages\KoreBuild\build文件夹,发现其中主要是一堆的.shade文件以及kvm命令文件。

.shade可能是Sake的配置文件,就如.targets(或.csproj)是msbuild的配置文件。
我猜测KoreBuild只是一个针对Sake的编译生成配置与脚本的打包。
初识Sake与KoreBuild之后的印象是:作为.NET平台的跨平台编译生成工具,Sake+KoreBuild让ASP.NET的跨平台触手可及。
初识ASP.NET 5中的Sake与KoreBuild的更多相关文章
- ASP.NET 5中的Sake与KoreBuild
初识ASP.NET 5中的Sake与KoreBuild 从github上签出基于ASP.NET 5的MVC 6的源代码进行编译,发现有2个编译命令: build.cmd是针对Windows的编译命 ...
- .net core系列之初识asp.net core
.net core已经发布了2.0版本,相对于1.0的有了很大的完善,最近准备在项目中尝试使用asp.net core,所以就进行了一些简单的研究. 初识asp.net core分为以下几个部分: 1 ...
- ASP.NET Core 中的那些认证中间件及一些重要知识点
前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...
- Asp.net Core中使用Session
前言 2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. 元旦放假在家写了个Asp.net Core验证码登录, 做demo的过程中遇到两个小问题,第一是在Asp.net Cor ...
- 在ASP.NET Core中使用百度在线编辑器UEditor
在ASP.NET Core中使用百度在线编辑器UEditor 0x00 起因 最近需要一个在线编辑器,之前听人说过百度的UEditor不错,去官网下了一个.不过服务端只有ASP.NET版的,如果是为了 ...
- ASP.NET Core 中文文档 第五章 测试(5.2)集成测试
原文: Integration Testing 作者: Steve Smith 翻译: 王健 校对: 孟帅洋(书缘) 集成测试确保应用程序的组件组装在一起时正常工作. ASP.NET Core支持使用 ...
- ASP.NET Core 中文文档 第四章 MVC(4.1)Controllers, Actions 和 Action Results
原文:Controllers, Actions, and Action Results 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:许登洋(Seay) Action 和 acti ...
- 在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView
背景 在前一篇文章<[初学者指南]在ASP.NET MVC 5中创建GridView>中,我们学习了如何在 ASP.NET MVC 中实现 GridView,类似于 ASP.NET web ...
- ASP.NET Core中的依赖注入(1):控制反转(IoC)
ASP.NET Core在启动以及后续针对每个请求的处理过程中的各个环节都需要相应的组件提供相应的服务,为了方便对这些组件进行定制,ASP.NET通过定义接口的方式对它们进行了"标准化&qu ...
随机推荐
- 使用WCF 测试客户端测试你的WCF服务
wcftestclient.exe是一个GUI的工具用于测试WCF,只需在Visual studio command line 窗口中键入 wcftestclient,就启动这个程序.如下图: 然后通 ...
- 根据某个文件或文件夹自制rpm包
首先安装打包软件# yum install rpmbuild rpmdevtools -y 生成打包路径1.使用rpmdev-setuptree ,会自动在用户家目录生成一个rpmbuild的文件夹 ...
- web.py+mysql插入中文提示query = query.encode(charset) UnicodeEncodeError: 'latin-1' codec can't encode characters in position 86-100
对于中文编码的问题,总会出现各种各样恶心的错误,还不知道应该怎么解决,首先,你从最开头就应该关注编码问题,尽量保证所有的编码方式都是一致的 用python+web.py+mysql来写程序,首先要保证 ...
- 技术英文单词贴--G
G generator 发电机,发生器,生产者
- 2015年九月八日---js学习总结
参考书:javaScript Dom 编程的艺术 知识小结:一:js简史:前称ECMAScript 是一种脚本语言通常只能通过浏览器进行解释和执行. Dom(文档对象模型):是一套对文档的内容进行抽象 ...
- 第二章 ZAB协议介绍
ZAB ( ZooKeeper Atomic Broadcast , ZooKeeper 原子消息广播协议)是zookeeper数据一致性的核心算法. ZAB 协议并不像 Paxos 算法那样,是一种 ...
- SUSE Linux Enterprise Server 11 软件源
1.添加软件源 zypper ar http://ftp5.gwdg.de/pub/opensuse/discontinued/distribution/11.4/repo/oss oss zyppe ...
- jzoj[1224]
怎么说呢,这道题的题面一看就知道是最小生成树,我是把二维数组转化为一维数组来做了,1000*1000没有超过一维数组的定义范围,不会爆栈 然后用并查集的kruskal来写就好了 首先一个start函数 ...
- Java 基本数据类型长度
System.out.println(Integer.MAX_VALUE-(-Integer.MAX_VALUE)); //内存溢出System.out.println(Integer.MAX_VAL ...
- win7自带windows media player 已停止工作
解决方法如下: 在计算机开始,菜单找到控制面板 ,然后打开程序和功能,选择打开或关闭window功能,媒体功能.再取消windows Media Center Windows MediaPlayer选 ...