如何使用CruiseControl.NET实现每晚构建

abm*_*bmv 5 cruisecontrol.net continuous-integration

我为我的项目设置了cruisecontrol.net cs,它有许多模块和组件可以构建并在构建机器上按日期存储在文件夹中.我需要为应用程序进行设置(wpf非web) )事情是,因为有许多模块和不同的解决方案,构建和最终制作产品(dlls)等.任何建议,提出一个设置策略,将创建一个夜间设置,以及使用什么设置包(更简单或根据你需要花费更少时间的东西)我计划在构建机器上安装一些东西,从文件夹中取出文件(什么文件夹?)并进行设置......

一个说明这一点的链接是Firefox的每晚构建.

任何建议的人

提前致谢.

Rob*_*ter 3

我发现这个系统对我来说运行得很好。我假设使用 VS 2005/2008 和 C#,但同样的原理也适用于其他编译器和语言,只需替换您自己的调味即可。

使用CC.NET

  • 如果多个位置使用,请使用 ScheduleTrigger 检查所有源
  • 使用 MSBuild 构建所需的每个解决方案(假设 VS 2005/2008)、nant 或任何最适合编译组件项目的构建工具
  • 使用 MSBuild 创建 WIX 安装程序,尽管我也使用 MSBuild 创建 InnoSetup 和 Wise Installation Studio 安装
  • 使用 MSBuild 更新您希望构建脚本控制的任何项目的 AssemblyInfo.cs 文件
  • 使用源代码管理命令行签入更新的 AssemblyInfo.ca 文件
  • 最后使用 MSBuild 将输出安装程序复制到放置服务器中的新文件夹。我使用主产品可执行文件中的时间戳来制作时间戳以及生成的版本号来命名文件夹(../Builds/Product/vMmrp - DATE TIME/)

我还喜欢在最后生成一封构建通知电子邮件。

至于安装人员的建议,需要权衡。

为了快速生成,请使用 NSIS 或 Inno Setup 等脚本安装程序。缺点是不兼容 Windows Installer。

对于 Windows Installer 产品,使用 Wise 或 InstallShield 首次生成速度更快,但工具昂贵,而且我发现安装脚本的维护成本很高。第一次使用 WIX 往往要昂贵得多(学习曲线 + 尖括号税),但之后更容易维护,因为它都是 XML 并且命令行工具很容易使用。

我在使用 Inno Setup 进行安装捆绑方面取得了一些成功,因为 Windows Installer 捆绑和链接(至少对于 Windows XP)确实很痛苦。