NAnt还是MSBuild,该如何选择以及何时使用?

164

我知道在Stack Overflow上还有其他与NAntMSBuild相关的问题,但我没有找到两者之间的直接比较,所以这里是问题。

何时应该选择NAnt而不是MSBuild?哪个更适合什么?NAnt是否更适合家庭/开源项目,而MSBuild则适用于工作项目?使用其中任何一个的经验如何?

14个回答

1

最近我已经从NAnt转向MSBuild,因为它能够构建VS解决方案。尽管如此,我偶尔还是会使用NAnt。

你可能也想看看MSBuild Community Tasks,它类似于NAntContrib。


某些版本的VS解决方案受到NAnt的支持。http://nant.sourceforge.net/release/0.85/help/tasks/solution.html - Denise Skidmore

0

我们两个都使用。NAnt负责所有“脚本”相关的事情,例如复制、部署到IIS上、创建包,而MSBuild则负责构建解决方案。这样,我们就可以通过新版本的NAnt避免非受支持的.NET 4.0出现问题。

NAnt也更具可扩展性。如果我们想将部署脚本迁移到生产服务器,只需复制构建文件并安装适当版本的.NET即可,不需要处理csproj文件的Visual Studio问题:)


0

YDeliver是由Manoj开发的构建框架,它基于PSake构建而成。它具有丰富的库函数集,能够定义工作流程,并且我们已经使用它将六个企业项目交付到生产环境中。

TeamCityCruiseControl或任何可以运行PowerShell的东西一起使用。


0

我们使用FlubuCore。它是一个开源的C#库,用于使用C#代码构建项目和执行部署脚本。

以下是Flubu的简单示例:

protected override void ConfigureTargets(ITaskContext session)
{           

    var compile = session.CreateTarget("compile")
        .SetDescription("Compiles the solution.")
        .AddTask(x => x.CompileSolutionTask())
        .DependsOn("generate.commonassinfo");
}

您可以在这里找到有关Flubu的更多信息以及如何入门: 选择构建工具MSBuild、NAnt或其他工具


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接