The meaning of version numbers can vary across projects.
One common scheme is Semantic Versioning, which divides the version number into three parts:
MAJOR.MINOR.PATCH
*MAJOR
is incremented when there are backwards incompatible changes.MINOR
is incremented when new features are added in a backwards compatible way.PATCH
is incremented for smaller big fixes.- Each number is reset to zero when a higher level number is incremented.
* It’s a bit more complex than this, but this is the gist.
AFAIK, build numbers and version numbers are usually seperate: Versions follow builds not the other way around.
In Visual Studio you can set the build number in your project as something similar to a unix timestamp/raw excel date value, so you can convert it back to a date/time of the build.
In that case it would always increment on each build regardless of whatever version numbers you set.
While there are usual practices and some common sense methods you can expect, it is ultimately up to the software authors and can be whatever they wish, or nothing at all. Neither version nor build numbers are universally used.