Build tag
A build tag or build string is a common name for the version string format used by recent versions of Microsoft Windows. In its fully expanded form, the build tag is a unique identifier of a Windows compile that includes the version number, target architecture and build type, branch or lab name, account username for private builds, and compilation timestamp.
Build tags were first introduced towards the end of Windows 2000 development, although they were not inserted into Windows builds themselves until very early into the development of Windows XP. Since then, the build tag is shown in winver as a part of the version information. It is also a prominent part of watermarks shown by most pre-release builds of Windows.
Format[edit | edit source]
Modern build tags most commonly use the following format:
version.arch.lab.timestamp
However, depending on the Windows version, the following formats may also be encountered:
version (lab.timestamp) version built by: lab at: timestamp version built by: lab
A build tag is composed of the following components:
version
is the full version number, i.e.6.3.9600.16384
. The major and minor version or the delta number is often omitted, in which case there is no default implied value.arch
is the target platform identifier suffixed by the build type (fre
for free/retail builds,chk
for checked/debug builds). This part is often left out when it is not considered necessary to identify the exact compile. Known target platform identifiers are as follows:x86
for 32-bit x86x64
,amd64
for 64-bit x86axp64
for 64-bit DEC Alphaia64
for Itaniumwoa
,arm
for ARM32arm64
for ARM64
lab
is the name of the branch or build lab that the build was compiled from. For private builds, this is followed (or replaced for early build tags) by the username of the account that initiated the build in parentheses; this can sometimes be an official build service account, likewincbld
(Windows Central Build Account) orwmbla
(Windows Main Build Lab Account). Private builds compiled after the migration to Git use the dummyGitEnlistment
lab name.timestamp
is the compilation date and time in theYYMMDD-hhmm
format.
The build tag may be followed by a hash of activation data from the registry, although it is not considered to be a part of the build tag itself.
Applying the above logic, the build tag 10.0.10240.16384.x86fre.th1.150709-1700
is the free/retail 32-bit x86 build of version 10.0.10240.16384, which was compiled from the th1
branch on 9 July 2015 17:00 (PT).
Location[edit | edit source]
The build tag of the currently running version of Windows is located in the registry under the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
. Depending on the exact version being used, there are two string values named BuildLab
and BuildLabEx
. However, it might not necessarily match the tag reported in winver in certain Windows 10 updates, e.g. Windows 10 November 2019 Update and all updates since the May 2020 Update, as the build number is artificially increased by a separate mechanism in order to distinguish between the updates.
Since Windows Server 2022, the build tag can also be found under the OSClient
and ShellCommon
subkeys within HKEY_LOCAL_MACHINE\SYSTEM\Software\Microsoft\BuildLayers
.
In older versions of Windows, the build tag is inserted into the file version information for system files. Due to the implementation of reproducible builds during the development of Windows 10 Creators Update, most files now only contain a dummy build tag with the full version number, but a placeholder lab and timestamp component, i.e. (WinBuild.160101.0800)
, as including build timestamps breaks the deterministic premise that compiling the same source code would always result in the exact same binary no matter what.