nAnt是否仍受支持并适用于.net 3.5/VS2008?

Translate

我正在使用MSBuild来构建我的东西。我想将Build Server用作CruiseControl.net。

现在,CCNET经常引用nAnt,但看起来ccnet可以完成nant通过项目配置和msbuild可以完成的大部分工作。此外,nAnt似乎还不受支持,它的Beta版本已经将近一年了。

简而言之:我实际上对MSBuild非常满意(特别是因为它是“正式的”编译器前端),而对nAnt则不太满意,但是我不想过早地做出判断。

在MSBuild上使用nAnt的原因是什么?尤其是ccnet,在功能方面似乎与nant有点重叠(并添加了与自动构建相关的内容)

This question and all comments follow the "Attribution Required."

所有的回答

Translate

如果您对MSBuild非常满意,那么我会坚持使用MSBuild。这可能是您最喜欢的工具是您首先要学习的工具的情况之一。我从NAnt开始,不能完全适应MSBuild。我敢肯定他们俩都将待一段时间。

两者之间存在一些根本性差异,可能最好通过以下方式突出显示一些NAnt粉丝和Microsoftie之间的对话.

有趣的是杰里米·米勒(Jeremy Miller)问了完全相反的问题在他的博客上去年。

来源
Translate

我认为这更多是个人喜好问题。 nAnt是一个很棒的框架,而MSBuild几乎是一样强大。借助轻松开发自定义任务的能力(在两个框架中),您可以完成几乎所有需要做的事情。

我无法回答您问题的“仍然支持”部分,但是我想说,如果您已经对nAnt感到满意,那么它可能是可行的。如果您(或小组中的某人)熟悉MSBuild,那么这也是一种不错的选择。

来源
Translate

如果您已经使用nAnt进行了一堆自定义任务,请坚持使用它-使用MSBuild不会有太大收获。也就是说,nAnt似乎没有MSBuild不能做的任何事情。两者都可以调用外部工具,都可以运行基于.Net的自定义任务,并且都具有大量社区任务。

出于与您相同的原因,我们在这里使用MSBuild-它是VS的默认构建系统,并且我们没有任何nAnt特定的问题要担心。

MSBuildCommunityTasks是一个很好的第三方任务库,它涵盖了我在nAnt中所做的大多数自定义内容,包括VSS和Subversion支持。

来源
Translate

老实说,这取决于哪种方式更适合您的环境。如果您使用许多非Microsoft工具,请使用nunit,ccnet,ncover。您可能会在nant身上找到更好的支持。或者,如果您使用的是MSTest,TFSBuild,则可能会发现MSBuild更好的环境。我会两者兼而有之,并使用每种方法更适合您的环境。

来源
Translate

CC.NET只是构建服务器技术,而不是构建脚本技术。我们在工作中使用CC.NET可以非常成功地成功调用MSBuild构建脚本。

NAnt是一种较旧且更成熟的构建脚本语言,但是它们的工作方式相似。我在NAnt中几乎没有什么可以在MSBuild中完成的,因此实际上取决于您更喜欢哪一种。就NAnt的活跃程度而言,不要错过最后一个发行版的时间……而要等到最后一个每晚构建的时间。 NAnt往往在发布之间间隔很长时间,但是夜间版本通常相当稳定。

来源
Dean Lee
Translate

就像许多人已经指出的那样,这里的答案是“取决于”。有些事情像重复操作在NAnt中更简单,更干净。看到MSDN论坛对此进行讨论。

来源
Translate

我发现您也可以使用混合方法,尤其是在大型项目中。开发新组件时,我们的许多nant脚本都将转换为msbuild。两者都支持相同的主要功能,并且如果您找到一个本机支持的任务,而另一个却不支持,则可以相互调用。

对于从MSBuild开始的新.NET开发,可以直接运行解决方案文件,因此可以节省大量时间。从主编译扩展以执行其他任务(源代码控制,部署等)非常有效。

来源