我已经为我的项目设置了 Cruisecontrol.net cs,该项目具有许多模块和组件,这些模块和组件可以在构建机器上按日期构建并按日期存储在文件夹中。问题是我需要为应用程序进行设置(wpf 非 web ),问题是,因为有许多模块和不同的解决方案可以构建并最终制造产品(dll)等。关于制定将创建夜间安装的安装策略以及要使用的安装包的任何建议(更简单的东西或者根据你的说法,需要更少的时间)我计划在构建机器上安装一些东西,它会从文件夹(什么文件夹?)中获取文件并进行设置......

说明这一点的链接是 Firefox 的夜间构建.

有什么建议吗?

提前致谢。

有帮助吗?

解决方案

我发现这个系统对我来说运行得很好。我假设使用 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/v.M.m.r.p - DATE TIME/)

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

至于 安装人员建议, ,存在一个权衡。

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

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

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

其他提示

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

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

查看 WiX 。此工具集允许以XML格式定义安装项目,然后从此XML生成msi。项目以XML定义的事实为您提供了很多灵活性,可以在构建期间动态修改此XML(如果需要)。

它与MSBuild集成 - 请参阅这篇文章,以及适用于NAnt - 请参阅本文

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top