5

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

一个说明这一点的链接是Firefox 的 nightly build

任何建议家伙

提前致谢。

4

3 回答 3

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 而言)是一个真正的痛苦。

于 2009-07-29T20:25:40.990 回答
1

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

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

于 2009-01-07T13:16:53.297 回答
0

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

它与 MSBuild 集成 - 请参阅本文,还可以与 NAnt 很好地配合使用 - 请参阅本文

于 2009-01-07T13:31:43.017 回答