正如其他人所提到的,我们在这里使用CCNET,通常不会使用夜间构建,而是采用持续集成策略(每次检入)。
我建议您也这样做,无论是自己还是团队内部,因为您可以非常容易地设置单元测试以在每次检入时运行,FXCop测试以及一系列其他产品。
如果只有你一个人的团队,并且你没有太多的项目在进行中,我还建议你查看Team City作为一个选项,因为它有一个免费版本,报告和设置据说要简单得多(对我来说看起来很不错)。
话虽如此,我们从CCNET开始,已经发展了几个产品,过于庞大,无法在免费版本上查看Team City,但我们对我们所拥有的东西非常满意。
有助于CCNET的功能包括:
但我肯定会选择在每次提交时运行CI构建 - 大部分情况下,在提交之前会运行单元测试,但是让CCNET服务器处理与我们正在检查的程序集存在依赖关系的任何应用程序/程序集,并在每次提交时重新构建和重新测试它们。
考虑到它是免费的并且设置所需的时间非常少 - 我强烈建议尝试一下。
在我看来,CruiseControl.NET是您最好的选择。它非常容易通过自定义任务进行扩展,如果需要,可以直接使用NAnt和MSBuild,并且得到了积极维护。
我非常喜欢 buildbot。它是开源的,用Python编写,非常容易部署、开发和维护。它可以轻松地与svn和大多数其他源代码控制系统集成。所有的构建脚本都是Python代码,因此您在核心构建主脚本方面具有很大的灵活性。当然,您也可以使用它来启动任何其他类型的脚本或批处理文件。
您可以查看一些buildbot实例: