Continuous integration 如何使用CruiseControl.NET实现夜间构建

Continuous integration 如何使用CruiseControl.NET实现夜间构建,continuous-integration,cruisecontrol.net,Continuous Integration,Cruisecontrol.net,我已经为我的项目设置了cruisecontrol.net cs,该项目有许多模块和组件,这些模块和组件可以生成并按生成机器上的日期存储在文件夹中问题是,由于有许多模块和不同的解决方案用于构建并最终制作产品(DLL)等。关于提供设置策略以创建夜间设置以及使用什么设置包的任何建议(一些更简单的或根据您而定的、花费更少时间的设置包)我计划在构建机器上安装一些东西,从文件夹(什么文件夹?)中提取文件并进行设置 说明这一点的链接是 有什么建议吗 提前感谢。我们使用和Wise创建安装程序,并发现创建设置非常

我已经为我的项目设置了cruisecontrol.net cs,该项目有许多模块和组件,这些模块和组件可以生成并按生成机器上的日期存储在文件夹中问题是,由于有许多模块和不同的解决方案用于构建并最终制作产品(DLL)等。关于提供设置策略以创建夜间设置以及使用什么设置包的任何建议(一些更简单的或根据您而定的、花费更少时间的设置包)我计划在构建机器上安装一些东西,从文件夹(什么文件夹?)中提取文件并进行设置

说明这一点的链接是

有什么建议吗

提前感谢。

我们使用和Wise创建安装程序,并发现创建设置非常直观和容易。实际的CC.NET项目做了几件事,第一件事是检查以确保自上次创建安装程序以来,所有需要的部件都已成功构建(我们允许按需安装以及每晚安排安装),如果它们尚未成功构建,我们将在构建完所有组件后重新构建它们(或者如果他们已经是)成功构建后,我们调用VisualBUildPro并让它创建安装程序。VisualBUildPro处理实际安装程序的所有复制和Wise调用。一旦创建了安装程序,我们将其发布到每个人期望的目标位置。我们还修改了构建服务器上电子邮件发布者的XSL,因此,每个人都可以在最新安装程序发布后获得一个链接

关于夜间构建的一些事情,如果可以的话,你应该尝试设置一个符号服务器,让每个安装程序上传带有源代码信息的符号。这也是拥有任何文档的一个好地方(D'Oxy;SandCastle)创建和运行可用的全套测试的时间。

请看一看。此工具集允许以XML形式定义安装项目,然后从该XML生成msi。该项目是用XML定义的,这一事实为您在构建过程中动态修改此XML提供了很大的灵活性(如果需要)


它与MSBuild-see集成,与NAnt-see也能很好地工作。

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

使用CC.NET

  • 如果多个位置使用scheduleTrigger,请使用scheduleTrigger签出所有源
  • 使用MSBuild构建所需的每个解决方案(假设VS 2005/2008)、nant或任何最适合编译组件项目的构建工具
  • 使用MSBuild创建WIX安装程序,尽管我也使用MSBuild创建InnoSetup和Wise Installation Studio安装
  • 使用MSBuild更新希望生成脚本控制的任何项目的AssemblyInfo.cs文件
  • 使用源代码管理命令行签入更新的AssemblyInfo.ca文件
  • 最后,使用MSBuild将输出安装程序复制到drop server中的新文件夹中。我使用主产品可执行文件中的时间戳制作时间戳以及生成的版本号来命名文件夹(../Builds/product/v.M.M.r.p-DATE-time/)
我还喜欢在最后生成一封构建通知电子邮件

至于安装程序建议,需要权衡

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

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


由于Windows Installer捆绑和链接(至少对于Windows XP而言)是一件非常痛苦的事情,我已经在Inno安装程序的安装捆绑方面取得了一些成功。

我看过wix,但我只是在根据想法权衡我的选择,以想出一些办法。