我今天偶然发现了这个奇怪的问题,同时根据运行的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实际上都返回空白。
答案 0 :(得分:8)
这是Windows NT内核的版本号。
答案 1 :(得分:2)
http://msdn.microsoft.com/en-us/library/ms724832(v=vs.85).aspx
XP和2003服务器基本上来自同一个世界,次要版本(在您的情况下,2或1)是两者之间的识别因素。
答案 2 :(得分:1)
这非常准确。使Windows内核打勾的核心代码在XP和Windows 2003之间是相同的。这也发生在后来,Vista和Windows 2008共享相同的核心。和Win7和Windows 2008 R2。
答案 3 :(得分:1)
它出了什么问题?大多数源(内核,shell等)在Windows操作系统的客户端和服务器版本之间共享,主要区别在于附加软件(例如AD服务器和协议)以及对系统组件的调整(例如,更长的调度程序量子)
Windows 2003服务器主要基于XP代码库,还有一年的开发时间(XP诞生于2002年);这是典型的Windows服务器发布计划(在客户端操作系统基础之后的一年)。
Trivia:您可能会注意到Windows XP的IA64版本也是5.2,因为它基于2003服务器代码库(因为它是他们开始使用IA64时的“最先进的”Windows)。
答案 4 :(得分:1)
答案 5 :(得分:0)
我认为MajorRevision是指服务包价值。
有很多信息here,但命名似乎有点不同。