我目前通过AhnkSVN和 Visual Studio使用subversion进行版本控制。我最近开始使用Tree Surgeon来设置我的项目。它使用NAnt自动创建构建脚本。我希望能够在 SVN 中自动构建定期项目。我喜欢在每次签入时进行构建的想法,但夜间构建也可以。我会提供更多信息或更多我的想法,但我想我会保持开放状态,看看 SO 社区要说什么。
10 回答
您可以使用CruiseControl.Net,它可以在每次签入、夜间构建或您想要的任何方式上进行构建。一个快速的谷歌搜索表明 CC.Net 已经与 NAnt 进行了一些集成。
正如其他人所提到的,我们在这里使用 CCNET,我们通常不会在夜间构建上工作,而是采用持续集成策略(每次签入)。
我建议您也这样做,无论是您自己还是团队内部,因为您可以非常轻松地设置单元测试以在每次签到时运行,FXCop 测试,以及大量其他产品。
如果只有你一个人在一个人的团队中,并且你没有太多的项目在进行中,我还建议你查看Team City作为一个选项,因为它有一个免费版本,而且报告和设置据报道很多更简单(对我来说确实不错)。
也就是说,我们从 CCNET 开始,并且已经开发出一些产品太大而无法在免费版本上查看 Team City,并且对我们拥有的产品非常满意。
有助于 CCNET 的功能包括:
- 基于 XML 的配置 - 您通常可以复制和粘贴您需要的大部分内容。
- 或多或少您将能够将您的treesurgeon 脚本作为您的构建脚本插入,并将CCNET 指向它作为一个可执行任务来运行编译。
- 大量文档,并且很容易设置 nunit、ncover、fxcop 等。
- 任务栏应用程序可以让您随时了解项目的状态,它还可以启动电子邮件或保留具有相同信息的 RSS 提要。
但我肯定会在每次签入时运行 CI 构建 - 大多数情况下会在签入之前运行单元测试,但让 CCNET 服务器处理运行任何依赖于我们的程序集的应用程序/程序集重新签入,它们被重新构建,并在每次签入时重新测试。
鉴于它是免费的,而且设置时间很短 - 我强烈建议您直接使用它。
在我看来,CruiseControl.NET 是您的最佳选择。如果需要,可以很容易地使用自定义任务进行扩展,开箱即用地与 NAnt 和 MSBuild 一起使用,并且非常积极地维护。
我建议TeamCity。:)
您可能需要考虑 CI-Factory。它是一个使用 CruiseControl.NET 和其他十几种工具的持续集成环境构建器。这里有一个很棒的截屏视频:http ://www.dnrtv.com/default.aspx?showID=64
我们将 CruiseControl.NET 与 NAnt 和 MsBuild 一起用于我们的构建服务器。我们对其进行了配置,以便每次我们签入代码时都会构建它,以及每晚构建。
Cascade支持对提交到存储库的每个更改进行构建。
我已经使用 FinalBuilder 几年了。FinalBuilder 的优势在于它不仅仅是构建。我将它设置为对结果进行一些分析,对构建进行归档,发送错误日志等。最新版本有一个 Web 界面,允许非专家通过单击来启动构建。