我们来介绍几款代码基于.NET生态系统的构建工具
https://github.com/bingbing-gui/dotnet-guide
1. MSBuild
MSBuild是构建应用程序的平台的引擎,提供了一个XML模式的项目文件,控制构建平台如何处理和构建软件。Visual Studio使用MSBuild,但MSBuild可以在没有Visual Studio的情况下运行。通过在项目或解决方案文件上调用msbuild.exe,您可以在没有安装Visual Studio的环境中编排和构建产品。
源代码地址:https://github.com/dotnet/msbuild
Cake是一个自动化构建系统,你可以使用C#语言做类似于代码编辑,复制文件/目录,运行单元测试,压缩文件和构建Nuget包,优点是你完全可以使用C#代码来控制任务,而不用在依赖于繁琐的xml文件
var target = Argument("target", "Test");
var configuration = Argument("configuration", "Release");
//////////////////////////////////////////////////////////////////////
// TASKS
//////////////////////////////////////////////////////////////////////
Task("Clean")
.WithCriteria(c => HasArgument("rebuild"))
.Does(() =>
{
CleanDirectory($"./src/Example/bin/{configuration}");
});
Task("Build")
.IsDependentOn("Clean")
.Does(() =>
{
DotNetBuild("./src/Example.sln", new DotNetBuildSettings
{
Configuration = configuration,
});
});
Task("Test")
.IsDependentOn("Build")
.Does(() =>
{
DotNetTest("./src/Example.sln", new DotNetTestSettings
{
Configuration = configuration,
NoBuild = true,
});
});
//////////////////////////////////////////////////////////////////////
// EXECUTION
//////////////////////////////////////////////////////////////////////
RunTarget(target);
源代码地址:https://github.com/cake-build/cake
nuke将您的构建自动化提升到与其他.NET项目相同的水平。它是一个常规的控制台应用程序,支持所有面向对象编程的优点!此外,它解决了构建自动化中的许多常见问题,比如参数注入、路径分隔符抽象、访问解决方案和项目模型,以及跨存储库共享构建步骤。nuke还可以生成CI/CD配置(YAML等),自动在多个代理上并行执行构建步骤以优化吞吐量!
上面图片来自于nuke源代码仓库
源代码地址:https://github.com/nuke-build/nuke