什么是 Windows 构建字符串以及如何找到它?

Sam*_*mir 7 windows windows-10

Microsoft Windows 操作系统的早期版本附有一个已知的“构建字符串”,用于识别目的。专注于 Beta 软件测试的网站通常有这些构建字符串的完整列表(或多或少)。

以下是这些构建字符串在 Windows 10 中的外观的几个示例,按照向 Beta 测试人员发布的顺序排列。

  • 6.4.9879.fbl_release.141​​103-1722
  • 10.0.9926.fbl_awesome1501.150119-1648
  • 10.0.10014.winmain_prs.150205-1859
  • 10.0.10061.fbl_impressive.150410-2039
  • 10.0.10163.winmain_prs.150630-1700
  • 10.0.10166.fbl_impressive.150703-1818
  • 10.0.10176.16384.th1.150705-1526
  • 10.0.10240.16384.th1.150709-1700

我知道第一组数字代表主要版本号,第二组是次要版本,第三组是内部版本号。通过winver从运行提示运行小程序,可以很容易地显示这三个。但是接下来的 gobbledygook 是什么意思呢?

是什么意思fbl_releasefbl_awesomewinmain_prs,和th1

第二组带破折号的数字看起来像日期。那些是编译时间日期吗?

我目前正在运行 Windows 10,这是我通过 Windows 更新获得的官方发布版本,作为免费升级产品的一部分。我从 Windows 8.1 升级到 Windows 10。原因是我想将我的与该列表中的最后一个进行比较。

通过systeminfo在 cmd 中运行命令,我得到了这个读数:

OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.10240 N/A Build 10240
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Standalone Workstation
OS Build Type:             Multiprocessor Free
Run Code Online (Sandbox Code Playgroud)

为什么它说我有“N/A”?没有任何附加条件?!

Sam*_*mir 5

什么是 Windows 构建字符串?

它是一组唯一标识 Windows 版本的字符。

什么是构建?...

构建是指构建解决方案。即:将源代码编译为目标代码,将目标代码链接为可执行的机器代码。它是分析、设计和编程工作的最终产品。但是,它可能不是最终产品,因为在此之前它可能会经过多次修改。当它发生时,它被称为最终版本、黄金版本,或者在 Microsoft 软件的情况下:RTM(发布到制造)。

最终,构建是可以用软件解决的问题的解决方案!因此,它被简单地称为软件。在这种情况下,它是 Windows 系统软件 - 很可能现在在您的计算机上运行并使其有用的操作系统。今天的孩子们都称它为“应用程序”,最初是“应用程序”或“应用程序软件”的缩写形式,但现在它也具有其他含义。Grups 简单地称其为“程序”。再用一句瑞典谚语,“心爱的孩子有很多名字”。

它也是一年一度的微软开发者大会的名称。

如何在 Windows 中读取构建字符串?

构建字符串作为字符串值在内部存储在 Windows 注册表中。有两种构建字符串需要注意。一个只是称为构建字符串并且仅包含构建编号,因此它只是数字。另一个有时称为完整构建字符串,因为它也包括分支名称和编译时间,或者更确切地说是构建时间戳。

Windows 注册表中的以下键包含正在运行的系统的完整构建字符串。

HKLM\Software\Microsoft\Windows NT\CurrentVersion
Run Code Online (Sandbox Code Playgroud)

这里有两个有趣的变量:

BuildLab:   10240.th1.150729-1800
BuildLabEx: 10240.16412.amd64fre.th1.150729-1800
Run Code Online (Sandbox Code Playgroud)

构建字符串的含义是什么?

通常,构建字符串包含以下部分:主要版本、次要版本、构建编号、分支名称、构建日期、构建时间。

一般来说,该方案如下所示:

[major].[minor].[build].[branch].[date]-[time]

我现在将研究几个例子。

  • 6.4.9879.fbl_release.141​​103-1722

这里,主要版本是 6,次要版本是 4,内部版本号是 9879。分支的名称是fbl_release. 它建于 2014 年 11 月 3 日,当地时间 17:22。

  • 10.0.10014.winmain_prs.150205-1859

这里的主要版本是 10,次要版本是 0,内部版本号是 10014。这是第一批获得主要版本号 10 的 Windows 版本之一。微软将主要版本号从 6 翻转到 10 之前只有一个版本(版本 10009) . 这就是 Windows 10 名字的由来。分支名称是winmain_prs,这被认为是主分支。它建于 2015 年 2 月 5 日,当地时间 18:59。

  • 10.0.10240.16384.th1.150709-1700

这里我们有主要版本 10、次要版本 0 和内部版本号 10240。我不太确定 16384 代表什么。当 Windows 8.1、Windows 8、Windows 7 以及 Windows Vista 是 RTM 构建或接近 RTM 时,此数字出现在构建字符串中。我称之为“神奇数字”。但我想这是某种“微构建”或构建颠覆。此版本于 2015 年 7 月 9 日构建,比 Windows 10 全面发布的时间早 20 天。它于 7 月 15 日推送给 Windows Insider 测试人员,并于 7 月 29 日开始向预订 Windows 10 免费升级副本的用户推出。

  • 建造实验室:10240.th1.150729-1800
  • BuildLabEx:10240.16412.amd64fre.th1.150729-1800

这是我目前用来输入这个答案的那个。这也是一个 RTM 版本,因为它是 10240 版本。但是从构建日期可以看出,这个版本实际上比 7 月 15 日向测试人员推出的上一个版本要好得多。看日期!上面写着 2015 年 7 月 29 日。那是 Windows 10 的发布日期!看看神奇的数字!是16412!将其与 16384 进行比较。因此,我知道这是以后的版本。

BuildLabEx 值包含的信息比之前的示例略多。它包括幻数或构建颠覆,以及处理器架构的名称。所以在这种情况下,它是 AMD64,又名 EM64T 或 Intel 64,即:64 位处理器。“fre”可能代表“免费”,即:生产内核,而不是“检查”的开发内核。

所以扩展的方案看起来像这样:

[major].[minor].[build].[subversion].[architecture].[branch].[date]-[time]

但是分支名称的含义是什么?...

  • winmain_prs
  • fbl_impressive
  • fbl_awesome
  • fbl_release
  • th1

winmain_prs是“Windows 主”分支。这是所有过去和未来的 Windows 版本(至少在 Windows NT 系列的情况下)的主要、稳定和准备发布的分支。“prs”可能代表合作伙伴,或生产就绪且稳定。我真的只是猜测!网上关于这方面的信息并不多。

我很确定“fbl”代表“未来构建”。这些是正在进行的工作,不稳定的分支。他们以“令人印象深刻”、“真棒”和“释放”(最后一个不那么可爱)等可爱的名字命名。我认为“impressive”和“awesome”用于添加新功能,而“release”用于在反向集成到主分支之前进行调试和稳定。

“th1”分支是新的。我不确定这意味着什么。但我知道只有 RTM 构建挂在这个分支上。因此,这可能是 Windows 发布模型变化的某种迹象。我指的是向 Windows 即服务的转变。

更新:Build 10525 最近已在“th2”分支上发布。“th”显然是“threshold”的缩写,它是 Windows 10 的代号。“th1”似乎是公开发布,而“th2”是内部预览发布分支。

为什么构建字符串有用?

它们允许准确识别 Windows 构建,直到分支和编译时间。这使得跟踪小的更改变得非常容易,因为代码的每次更改,无论多么小,在编译、链接、构建和发布时都会得到一个新的构建字符串来标识它。构建字符串对 Beta 测试人员最有用。因为在开发周期的测试阶段对代码进行了小而频繁的更改。

一旦发布了最终版本,完整的构建字符串就变得无关紧要。相反,主要感兴趣的是主要、次要和内部版本号。这有助于识别正在运行的 Windows 系统的“版本”。这是第三方 Windows 应用程序用来识别它们安装或运行的 Windows 版本的方法。这与 Windows 营销名称不同,例如“Windows XP”或“Windows Vista”。