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

现在,CCNET对nAnt进行了大量的讨论,但看起来ccnet可以通过项目配置和msbuild完成大部分工作。 此外,nAnt似乎有点不受支持,Beta版本已经差不多一年了。

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

使用nAnt而不是MSBuild会有什么理由? 特别是ccnet,在功能方面似乎与nant重叠(并添加了自动构建相关的东西)

===============>>#1 票数:15 已采纳

如果你对MSBuild非常满意,那么我会坚持使用MSBuild。 这可能是您首先学习的工具是您更喜欢的工具之一。 我从NAnt开始,不太习惯MSBuild。 我相信他们都会在一段时间内出现。

这两者之间存在一些根本性的差异,可能是一些NAnt粉丝和微软之间的对话最能突出的。

有趣的是, Jeremy Miller去年在他的博客上提出了完全相反的问题。

===============>>#2 票数:5

在我看来,这更多是个人偏好的问题。 nAnt是一个很棒的框架,MSBuild几乎同样强大。 由于能够轻松开发自定义任务(在两个框架中),您几乎可以完成任何需要执行的操作。

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

===============>>#3 票数:3

如果你已经有了一堆与nAnt一起使用的自定义任务,请坚持使用它 - 你在MSBuild上获得的收益并不高。 也就是说,似乎没有任何nAnt可以做的事情,MSBuild无法做到这一点。 两者都可以调用外部工具,两者都可以运行基于.Net的自定义任务,并且两者都有一堆社区任务。

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

MSBuildCommunityTasks是一个很好的第三方任务基础,它涵盖了我在nAnt中所做的大部分自定义工作,包括VSS和Subversion支持。

===============>>#4 票数:1

老实说,这取决于更适合您环境的因素。 如果您使用了很多非Microsoft工具,nunit,ccnet,ncover。 你可能会找到更好的支持nant。 或者,如果您使用的是MSTest,TFSBuild,您可能会发现MSBuild是一个更好的环境。 我会学习这两种方法并使用哪种方式更适合您的环境。

===============>>#5 票数:1

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

NAnt是一种较旧且更成熟的构建脚本语言,但它们的工作方式相似。 我在NAnt中做的事情很少,我在MSBuild中也做不到,所以它真的归结为哪一个你更舒服。 至于NAnt的活跃程度,不要在最后一个版本的时候过去......而是在最后一次每晚构建时过去。 NAnt在发行版之间往往需要很长时间,但夜间版本通常非常稳定。

===============>>#6 票数:0

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

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

===============>>#7 票数:0

就像很多人已经指出的那样,这里的答案是“它取决于”。 在NAnt中有一些重复操作更简单,更清晰的东西。 有关问题的讨论,请参阅MSDN论坛

  ask by Michael Stum translate from so

未解决问题?本站智能推荐:

关注微信公众号