.net – MSBuild项目与PowerShell构建过程

我必须完成以下任务:

>预建设置(下载依赖等)
>构建.net解决方案
>运行测试(单元测试和功能测试)
>生成文档
>生成nuget包
>签名输出

我能够通过创建PS构建过程(使用msbuild来编译解决方案)或带有目标的MSBuild项目(使用一些帮助PS脚本)来完成任务. PowerShell更灵活,但MSBuild是一个构建框架,具有一些集成的构建相关功能.我想知道什么是最好的方法.请分享想法.

最佳答案 开箱即用,MSBuild专门处理任务及其依赖项.因此,当您想要执行默认情况下MSBuild无法执行的自定义操作时,您需要通过目标调用脚本/工具,或者您可以通过在项目中包含社区/自定义扩展来添加更多类型的任务.

另一方面,Powershell没有形式,所以你必须在没有内置结构的情况下按自己的方式工作,但是您可以自由地开箱即用,无需使用其他工具/语言来填充弥补差距.对于多个项目,如果要保持构建系统的可维护性,则必须创建某种框架.

如果你想要两个世界,PSAKE是一个任务处理Powershell模块,它的行为类似于MSBuild,并且具有基于RAKE的语法,这非常简洁.简而言之,PSAKE具有比MSBuild更轻的语法,并且通过Powershell提供了大部分功能,因此您可以从这两个方面受益.

一般来说,这是一个品味和需求的问题.我赞成简短而甜蜜的语法,清楚地说明代码的哪些部分可以做什么. MSBuild基于XML,因此有很多冗余,它没有随附的IDE,需要像Visual Studio这样的外部工具来调试它. PSAKE是一个Powershell模块,因此您可以在创建构建脚本时生成Powershell ISE,加载模块并享受IntelliSense.

但是要明白,选择什么有很多可能性,所以选择你的毒药,不要只选择MSBuild和Powershell. See some alternatives here.

点赞