• 初识ASP.NET 5中的Sake与KoreBuild


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

    build.cmd是针对Windows的编译命令,build.sh是针对Mac/Linux的编译命令,这本来没什么稀奇,但是打开这2个文件一看:

    build.cmd:

    packagesSake	oolsSake.exe -I packagesKoreBuilduild -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的packagesKoreBuilduild文件夹,发现其中主要是一堆的.shade文件以及kvm命令文件。

    .shade可能是Sake的配置文件,就如.targets(或.csproj)是msbuild的配置文件。

    我猜测KoreBuild只是一个针对Sake的编译生成配置与脚本的打包。

    初识Sake与KoreBuild之后的印象是:作为.NET平台的跨平台编译生成工具,Sake+KoreBuild让ASP.NET的跨平台触手可及。

  • 相关阅读:
    [Tips] Resolve error: server certificate verification failed.
    [Tips] bzr Import error
    NPAPI命休矣
    [Buzz Today]2013.08.18
    [Tips]Fix node.js addon build error: "gyp: binding.gyp not found"
    The.first.glance.at.linux.commands
    [Idea Fragments]2013.08.08
    Linux利器:WinSCP,Putty,pscp和psftp
    本博客已经迁移去http://blog.brightwang.com/
    将博客搬至CSDN
  • 原文地址:https://www.cnblogs.com/dudu/p/aspnet-sake-kcorebuild.html
Copyright © 2020-2023  润新知