Я наткнулся на эту странность сегодня, играя с некоторым кодом, чтобы идти по разным путям в приложении в зависимости от того, какая ОС Windows работает.Следующий код:
OperatingSystem os = Environment.OSVersion;
Version v = os.Version;
string osv = v.ToString();
Console.WriteLine("Revision=" + v.Revision.ToString());
Console.WriteLine("MinorRevision=" + v.MinorRevision.ToString());
Console.WriteLine("Minor=" + v.Minor.ToString());
Console.WriteLine("Major=" + v.Major.ToString());
Console.WriteLine("MajorRevision=" + v.MajorRevision.ToString());
Console.WriteLine(osv);
На моей рабочей станции XP SP3 отображается код, приведенный выше:
Revision=196608
MinorRevision=0
Minor=1
Major=5
MajorRevision=3
5.1.2600.196608
На одном из наших серверов Win2003 SP2 отображается:
Revision=131072
MinorRevision=0
Minor=2
Major=5
MajorRevision=2
5.2.3790.131072
Я был немного удивлен этим, так как номер основной версии предполагает, что XP и Windows Server 2003 - это, в основном, одна и та же версия Windows, с незначительным отличием в версии.Не совсем уверен, что означает термин «MajorRevision».
Я предполагал, что третьим термином в полном номере версии является номер сборки, но v.Build фактически возвращает пустое значение в обоих случаях.