解决方案部署,CM,InstallShield

时间:2020-03-05 18:41:06  来源:igfitidea点击:

人们,

我们有4或者5个实用程序可与我们的应用程序一起使用。这些实用程序可以是.bat文件,也可以是VB应用程序,PowerBuilder等。我试图在源代码管理中管理这些utils,并试图找出一种更好的方法来为其分配版本。现在,开发人员使用版本控制的元数据(特别是标签)来存储工具的版本号。

我的目标是为每个实用程序提供单独的InstallShield软件包,并提供一种简便的方法来管理和分配这些软件包的版本号。

我们是否会建议将单独的.ini文件与信息一起使用,还是将信息存储在InstallShield .ism文件本身中,还是仅使用版本控制工具中的元数据信息?

更新:

我喜欢Orion这个主意。不过我有一个顾虑。递增版本号的脚本...不够智能,无法递增主要号等。例如如果其中一个utils的版本为1.2.3,而我们的新版本为2.0.0。该脚本可能无法处理此问题。

我认为这与我们的分支技术有很大关系-我们没有任何分支技术。人们认为,由于实用程序非常小,因此来源可能不需要分支机构。

解决方案

回答

我在上一份工作中管理了构建系统,这似乎与要求有些相似。

大约有30个C ++项目需要编译,各种.NET / Java内容以及奇数perl脚本。

所有这些都是使用NAnt在我们的构建机器上构建的。如果今天我要使用rake,则想法是相同的。

基本上,我们有一个自动递增的内部版本号,该版本号存储在存储库根目录中的version.txt文件中。

每次我们进行构建时(每晚自动进行一次构建,或者在需要时按需进行构建),脚本将递增该数字并将文件重新检查到源代码管理中。

其他所有其他应用程序均以该文件的版本号或者不支持此类工作的方式引用了此文件,该脚本将设置环境变量或者执行其他解决方法

  • 我很确定我们的installshield程序为其版本号引用了一个环境变量,但是我们不赞成使用wix,因为installshield确实很烂
  • 对于Visual Studio,请grep /替换.csproj文件中的数字,然后将其检入

希望这能给你一些想法

回答

特别是PowerBuilder,我们可以执行一个很好的技巧,将ini文件中的内部版本号合并到已编译的应用程序中。

此处的详细信息:http://www.pbdr.com/pbtips/ex/autorev.htm

我们在源代码控制内部有一个ini文件,用于存储内部版本号,并且在构建脚本中使用其值来确定成功构建之后要应用于源树的标签。很好地满足了我们的需求。当我们分支时,我们确实必须手动踢文件来增加适当的数字。

回答

使用版本控制系统中的元数据应该使事情变得更简单。这就是开发人员已经使用该系统的方式。没有其他要维护的文件。我的个人经验告诉我,应使用与主应用程序相同的版本来对卫星应用程序进行版本控制。吻