Talk:Microsoft version numbering

Version numbers since Windows XP
My version number in IE is this: 6.0.2900.2180.xp_sp2_rtm.040803-2158. So I'm not sure it really follow the format described in the article. Since Windows XP (and I believe this tradition is followed in Windows Longhorn from the alphas I've checked), Microsoft's numbers follow the format: MajorVersion.MinorVersion.BuildNumber.RevisionNumber.BuildType.CompilationDate. It's 6 sections, with the fifth (and none else AFAIK) being alphanumeric. CompilationDate is using date in the ISO standardized format, along with a 24-hour "military" time after the dash (unsure of which time zone), so mine would be 2004-08-03, 21:58. This article says they use the format PrimaryVersion.SecondaryVersion.BuildNumber.ComplexNumber, with the last "the SP release, international client pack, and hotfix numbers". I'm not sure what all that means, really. Besides any necessary revisions to the article if it's wrong, I think it should include a descriptive example. Note: This format is new for Windows XP and onwards, I know there was some differences in Windows 2000, so maybe this is why there's confusion. -- Jugalator July 7, 2005 21:56 (UTC)

Serious inaccurate article
Not only what Jugalator has said above, but the title of this article is far from accurate either. Many MS products use a very different format, and it might even be different for individual builds/revisions of the same products. Hence there is no "Microsoft Version Number". It doesn't exist as MS does not have a standardized way to format the numbers, or even the order of the number (eg: build.revision or revision.build)!!!. This article should seriously be revised. -- Cookie —Preceding unsigned comment added by 84.195.156.101 (talk) 09:54, 19 July 2008 (UTC)

I agree with everyone above me. The Visual Studio builds use a completely different build format, so does Windows NT 4.0. I don't remember the number after 1381 but I can assure you the number is at least 7000.

Microsoft version numbering
This article should be transwikied to software.wikia.com 65.94.45.230 (talk) 05:50, 6 May 2011 (UTC)

.NET Based Microsoft (and non-Microsoft) Products
Keep in mind that any Microsoft product based on .NET (or any non Microsoft Product) will use a four section version number (built into the binary file format, and into the assembly version class that can be viewed via reflection, file properties, or in the GAC, etc... -- some products may alter the string that is displayed to the user, but that is not always the case)

The four parts of a .NET version are Major.Minor.Build.Revision -- It is very common (in my experience) to find .NET Assembly Versions that are set to UserDefinedMajor.UserDefinedMinor.* (example: "1.0.*") -- where * automatically inserts (at compile time) the EncodedDate.EncodedTime in place of Build.Revision (many newer Microsoft products that I encounter, appear to be of this type as well) -- encoded date is the number of days since Jan 1st 2000, and encoded time is the number of seconds (divided by 2) since midnight on that day. (Note that there are other ways to look up the build date & time of any windows .exe or .dll file, as it is part of the portable executable format; that date/time information can be compared against the version information to determine if a program's version bits are signifying a specific service pack etc, or simply the date and time of build, which is automatic.)

The following bit of C# code works to extract the build date & time information (in local time) from any given .NET assembly (and can be adapted to work with just plain version objects, or to other languages):


 * // Parse Assembly Version Encoded Date (requires AssemblyVersion attribute to be set to "X.Y.*").
 * Version v = someAssembly.GetName.Version;
 * // Sanity Checking
 * if (v.Build > 0)
 * DateTime dt = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Local);
 * dt += TimeSpan.FromDays(v.Build);
 * dt += TimeSpan.FromSeconds(v.Revision * 2);
 * if (TimeZone.IsDaylightSavingTime(dt, TimeZone.CurrentTimeZone.GetDaylightChanges(dt.Year)))
 * dt += TimeSpan.FromHours(1);
 * }
 * // Sanity Checking:
 * if (dt < DateTime.Now) { return dt; }
 * }
 * // Raise error condition:
 * // Sanity Checking:
 * if (dt < DateTime.Now) { return dt; }
 * }
 * // Raise error condition:
 * // Raise error condition:
 * // Raise error condition:

That code is lurking around on the internet in various forms, but I don't have the time to find it right now.

BrainSlugs83 (talk) 01:50, 17 February 2012 (UTC)

Marketing vs. technical
There is a thing called "Office", the current sells under the 'label(ing)(?)' "2013", but of course the technical version is different. I think the similar could be said about the OS ... -> Windows, etc. etc. It would be nice, if the article would reflect that chaotic Microsoft Version(number)ing. --Alien4 (talk) 13:27, 24 March 2015 (UTC)