I know the standard Major.Minor.Build.Revision, but there are a few considerations for us that are somewhat unique.
-We do internal releases almost daily, sometimes more than once a day.
- Windows Installer does not check Revision in a way that is almost debatable for our purposes.
- Small and minor numbers are ideally updated only for public releases and should be done manually.
-That leaves Build #, which needs to be updated automatically.
-We want internal releases to be run from any development machine to exclude the use of xx * in Visual Studio, because different numbers can be generated from different computers, and each assembly is not guaranteed to be larger than the previous one,
. We have about 15 projects as part of the product, so storing version numbers in SVN is not ideal, since each release we had to commit all these files.
Given these criteria, I cannot come up with a good version control scheme. The last two criteria can be dropped, but they all seem ideal. Printing the date is not enough, because we can do more than once a day and given the maximum size of Uint16 (about 64000) (in fact, using WiX, he complains about the numbers above Int16.MaxValue) the date / time is not suitable.
Davy8 source
share