nAnt仍然支持并适用于.net 3.5 / VS2008?

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

现在,CCNET引用了很多,但看起来好像ccnet可以完成大部分通过项目配置和msbuild所能做的事情。此外,nAnt似乎有点不受支持,现在已经有近一年的Beta版了。

简而言之:我对MSBuild非常满意(特别是因为它是“官方”编译器前端),并且对nAnt有点不舒服,但我不想过早地判断。

什么是使用nAnt而不是MSBuild的原因?特别是ccnet,它在功能上似乎与nant重叠了一些(并添加了与自动构建相关的东西)

0
额外 编辑
意见: 1

6 答案

老实说,这取决于更适合你的环境的东西。如果你使用了很多非微软工具,nunit,ccnet,ncover。你可能会发现更好的支持。或者,如果你使用MSTest,TFSBuild,你可能会发现MSBuild更好的环境。我会学习和使用每一种适合你的环境的更顺利。

0
额外

在我看来,这更多是个人喜好的问题。 nAnt是一个很好的框架,MSBuild几乎可以胜任。通过轻松开发自定义任务(在两个框架中),您几乎可以完成任何需要的任务。

我无法回答你的问题中的“仍然支持”部分,但我会说,如果你已经习惯了nAnt,那么它可能是可行的。如果你(或你的团队中的某个人)熟悉MSBuild,那么这也是一个好方法。

0
额外

如果你对MSBuild很满意,那么我会坚持MSBuild。这可能是您首先学习的工具是您喜欢的工具的其中一种情况。我从NAnt开始,不太适应MSBuild。我相信他们都会在相当一段时间左右。

这两者之间有一些根本区别,可能最好由一些NAnt粉丝和微软之间的对话

有趣的是,杰里米米勒提出了完全相反的问题在他的博客上去年。

0
额外

如果你已经有了一些用于nAnt的自定义任务,请坚持使用它 - 你不会在MSBuild中获益太多。也就是说,似乎没有任何事情可以做到MSBuild无法做到的核心。两者都可以调用外部工具,都可以运行基于.Net的自定义任务,并且都有一些社区任务。

我们在这里使用MSBuild的原因与你一样 - 它现在是VS的默认构建系统,而且我们没有任何nAnt特定的东西需要担心。

首先, MSBuildCommunityTasks 是一个很好的第三方任务基础,涵盖了大部分我以前的自定义内容nAnt包括VSS和Subversion支持。

0
额外

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

对于从MSBuild开始的新.NET开发,可以节省您很多时间,因为它可以直接运行解决方案文件。从主编译扩展到执行其他任务(源代码控制,部署等)的工作非常好。

0
额外

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

NAnt是一种更老,更成熟的构建脚本语言,但它们在工作方式上都很相似。在NAnt中我可以做的事情很少,我不能在MSBuild中做,所以它真的归结为你更喜欢哪一个。就NAnt的活跃程度而言,不要在最后一个版本的时候......而是在最后一个版本的时候去做。 NAnt在两次发布之间往往需要很长时间,但每晚的版本通常都非常稳定。

0
额外