自动化构建三剑客:msbuild、cake和nuke

文摘   2024-05-05 09:33   上海  

我们来介绍几款代码基于.NET生态系统的构建工具

https://github.com/bingbing-gui/dotnet-guide

1. MSBuild

MSBuild是构建应用程序的平台的引擎,提供了一个XML模式的项目文件,控制构建平台如何处理和构建软件。Visual Studio使用MSBuild,但MSBuild可以在没有Visual Studio的情况下运行。通过在项目或解决方案文件上调用msbuild.exe,您可以在没有安装Visual Studio的环境中编排和构建产品。

相信每一个做过.NET的人都知道MSBuild

源代码地址:https://github.com/dotnet/msbuild

2. Cake

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

3. nuke

nuke将您的构建自动化提升到与其他.NET项目相同的水平。它是一个常规的控制台应用程序,支持所有面向对象编程的优点!此外,它解决了构建自动化中的许多常见问题,比如参数注入、路径分隔符抽象、访问解决方案和项目模型,以及跨存储库共享构建步骤。nuke还可以生成CI/CD配置(YAML等),自动在多个代理上并行执行构建步骤以优化吞吐量!

上面图片来自于nuke源代码仓库

源代码地址:https://github.com/nuke-build/nuke

github地址:
https://github.com/bingbing-gui/dotnet-guide

桂迹
分享原创,记录痕迹!
 最新文章