我知道标准的Major.Minor.Build.Revision,但我们有几个有点独特的考虑因素
- 我们几乎每天都会进行内部发布,有时每天不止一次。
- Windows Installer doesn't check Revision所以我们的目的几乎没有实际意义。
- 理想情况下,主要和次要号码仅针对公开发布进行更新,应手动完成。
- 离开需要自动更新的Build#。
- 我们希望能够从任何开发人员的计算机执行内部版本,以便在Visual Studio中使用xx *,因为可以从不同的计算机生成不同的编号,并且不保证每个版本都比以前更大。
- 我们有大约15个左右的项目作为产品的一部分,因此在SVN中保存版本号并不理想,因为每个版本我们都会提交所有这些文件。
鉴于这些标准,我无法真正想出一个好的版本控制方案。可以放弃最后两个标准,但满足所有这些标准似乎是理想的。日期戳是不够的,因为我们可能每天做一次以上,并且给定Uint16的最大尺寸(大约64000)(实际上使用WiX它抱怨数字高于Int16.MaxValue)日期/时间将不适合。
答案 0 :(得分:3)
git describe
输出,这在大多数情况下是完美的)。构建应该是可追踪的 - 如果您希望实际能够确定正在运行的内容,那么仅从已提交的源构建它很重要。此外,Uint32不限于2 ^ 16(65535),其32位为2 ^ 32,或大约40亿。
答案 1 :(得分:2)
由于msi没有检查修订,我们在msi的构建系统中切换了第三和第四版本部分。
例如,如果真实版本是1.2.3.4678(4678是构建应用程序的SVN版本),我们将msi版本创建为1.2.4678.3。