Microsoft C++ (MSVC) 编译器版本由四个字段组成:
M - 主版本(两位数)
N - 次要版本(两位数)
B - 内部版本(五位数)
R - 修订版本
Microsoft 特定的编译器宏按以下方式对这些字段进行编码:
_MSC_VER = MMNN
_MSC_FULL_VER = MMNNBBBBB
_MSC_BUILD = R
例如,Visual Studio 2022 版本 17.9.0 的编译器版本为 19.39.33519:
- 主版本是 19
- 次要版本是 39
- 内部版本是 33519
- 修订版本为 0
宏按如下方式反映这些值:
_MSC_VER = 1939_MSC_FULL_VER = 193933519-
_MSC_BUILD(修订)是 0。
Note
Visual Studio 2019 版本 16.8 和 16.9 共享相同的主版本和次要版本,因此具有相同 _MSC_VER的值。 与 Visual Studio 2019 版本 16.10 和 16.11 一样。 若要区分它们,请使用_MSC_FULL_VER中所述的 。
Visual Studio通道
所有 MSVC 生成工具都可通过Visual Studio安装程序获得。
Visual Studio稳定通道每月获取更新,并包括最新的受支持的 MSVC 生成工具。 Visual Studio Insiders Channel 更新频率更高,因此可以更快地尝试即将进行的 MSVC 更改。 有关发布节奏的详细信息,请参阅 Visual Studio 2026 版本节奏和 Visual Studio Insiders 发行说明。
每个Visual Studio更新都接收所有 MSVC 生成工具集的更新:
- 预览工具集接收开发团队自上一次更新以来完成的新功能和修补程序。
- 默认和仍受支持的较旧工具集仅会获得有针对性的缺陷修复。
Visual Studio预览体验成员用户可以提前访问 MSVC 版本:
- 在预览体验成员频道上,预览版工具集大约每周更新一次。
- 在预览体验计划频道中,新工具集会在进入稳定频道前约一个月以发布候选版的形式提供,让预览体验计划用户有时间验证工具集并报告问题。
安装特定的 MSVC 工具集
- 若要仅安装默认 MSVC 工具集,请安装
Desktop development with C++工作负荷。 - 若要安装预览工具集,请运行 Visual Studio Installer,然后选择 MSVC 生成工具 for <arch> (预览版)。 有关详细信息,请参阅 MSVC 生成工具预览版。
- 若要安装较旧的支持 14.5x 工具集,请运行 Visual Studio 安装程序,打开 Individual Components 选项卡,然后选择特定的 14.5x 工具集。
- 若要在升级后还原以前安装的工具集(例如,当 14.50 替换为 14.51 时),请从 “单个组件 ”选项卡添加旧工具集。
- 若要仅安装没有完整Visual Studio IDE的生成工具,请使用 Visual Studio 稳定生成工具 SKU。
- Visual Studio安装程序中也可能提供一些支持外工具集(标记为 (支持不足))。 这些工具集不会收到任何更新,将来可能会删除。 强烈建议迁移到受支持的版本。
版本宏
回想一下,版本号由四个字段组成:
M - 主版本(两位数)
N - 次要版本(两位数)
B - 内部版本(五位数)
R - 修订版本
_MSC_VER 可区分主版本和次要版本。 它的形式为:MMNN。
_MSC_FULL_VER 表示编译器的主版本、次要版本和内部版本。 它的形式为:MMNNBBBBB。 使用它可以区分不同版本的编译器,包括服务版本。 有关 Visual Studio 2019 版本 16.8、16.9、16.10 和 16.11 的详细信息,请参阅 从 Visual Studio 2017 开始的服务版本。
_MSC_BUILD 表示编译器的修订版本。 它采用以下形式:R。使用它来区分编译器修订。
当主版本在 Visual Studio 2013 和 Visual Studio 2015 之间更改时,_MSC_VER 反映了从 1800 到 1900 的更改。
次要更改的示例是从 Visual Studio 2022 版本 17.1 到 Visual Studio 2022 版本 17.2。 在这种情况下,_MSC_VER 从 1931 更改为 1932。
下表列出了与每个 MSVC 编译器(_MSC_VER)和 MSVC 生成工具版本对应的Visual Studio版本,以及支持状态。 EOL 表示生命周期结束。
| Visual Studio 版本 | _MSC_VER |
MSVC 生成工具版本 | Support | 详细信息 |
|---|---|---|---|---|
| Visual Studio 6.0 | 1200 | 6.0 | EOL | Visual Studio生命周期策略 |
| Visual Studio .NET 2002 (7.0) | 1300 | 7.0 | EOL | Visual Studio生命周期策略 |
| Visual Studio .NET 2003 (7.1) | 1310 | 7.1 | EOL | Visual Studio生命周期策略 |
| Visual Studio 2005 (8.0) | 1400 | 8.0 | EOL | Visual Studio生命周期策略 |
| Visual Studio 2008 (9.0) | 1500 | 9.0 | EOL | Visual Studio生命周期策略 |
| Visual Studio 2010 (10.0) | 1600 | 10.0 | EOL | Visual Studio生命周期策略 |
| Visual Studio 2012 (11.0) | 1700 | 11.0 | EOL | Visual Studio生命周期策略 |
| Visual Studio 2013 (12.0) | 1800 | 12.0 | EOL | Visual Studio生命周期策略 |
| Visual Studio 2015 (14.0) | 1900 | 14.0 | EOL | Visual Studio生命周期策略 |
| Visual Studio 2017 RTW (15.0) | 1910 | 14.10 | EOL | Visual Studio 2017 生命周期 |
| Visual Studio 2017 版本 15.3 | 1911 | 14.11 | EOL | Visual Studio 2017 生命周期 |
| Visual Studio 2017 版本 15.5 | 1912 | 14.12 | EOL | Visual Studio 2017 生命周期 |
| Visual Studio 2017 版本 15.6 | 1913 | 14.13 | EOL | Visual Studio 2017 生命周期 |
| Visual Studio 2017 15.7 版 | 1914 | 14.14 | EOL | Visual Studio 2017 生命周期 |
| Visual Studio 2017 版本 15.8 | 1915 | 14.15 | EOL | Visual Studio 2017 生命周期 |
| Visual Studio 2017 版本 15.9 | 1916 | 14.16 | 2027 年 4 月 13 日 | Visual Studio 2017 生命周期 |
| Visual Studio 2019 RTW (16.0) | 1920 | 14.20 | EOL | Visual Studio 2019 生命周期 |
| Visual Studio 2019 版本 16.1 | 1921 | 14.21 | EOL | Visual Studio 2019 生命周期 |
| Visual Studio 2019 版本 16.2 | 1922 | 14.22 | EOL | Visual Studio 2019 生命周期 |
| Visual Studio 2019 版本 16.3 | 1923 | 14.23 | EOL | Visual Studio 2019 生命周期 |
| Visual Studio 2019 版本 16.4 | 1924 | 14.24 | EOL | Visual Studio 2019 生命周期 |
| Visual Studio 2019 版本 16.5 | 1925 | 14.25 | EOL | Visual Studio 2019 生命周期 |
| Visual Studio 2019 版本 16.6 | 1926 | 14.26 | EOL | Visual Studio 2019 生命周期 |
| Visual Studio 2019 版本 16.7 | 1927 | 14.27 | EOL | Visual Studio 2019 生命周期 |
| Visual Studio 2019 版本 16.8、16.9 a | 1928 | 14.28 | EOL | Visual Studio 2019 生命周期 |
| Visual Studio 2019 版本 16.10、16.11 b | 1929 | 14.29 | 2029 年 4 月 10 日 | Visual Studio 2019 生命周期 |
| Visual Studio 2022 RTW 17.0 | 1930 | 14.30 | EOL | Visual Studio 2022 生命周期 |
| Visual Studio 2022 版本 17.1 | 1931 | 14.31 | EOL | Visual Studio 2022 生命周期 |
| Visual Studio 2022 版本 17.2 | 1932 | 14.32 | EOL | Visual Studio 2022 生命周期 |
| Visual Studio 2022 版本 17.3 | 1933 | 14.33 | EOL | Visual Studio 2022 生命周期 |
| Visual Studio 2022 版本 17.4 | 1934 | 14.34 | EOL | Visual Studio 2022 生命周期 |
| Visual Studio 2022 版本 17.5 | 1935 | 14.35 | EOL | Visual Studio 2022 生命周期 |
| Visual Studio 2022 版本 17.6 | 1936 | 14.36 | EOL | Visual Studio 2022 生命周期 |
| Visual Studio 2022 版本 17.7 | 1937 | 14.37 | EOL | Visual Studio 2022 生命周期 |
| Visual Studio 2022 版本 17.8 | 1938 | 14.38 | EOL | Visual Studio 2022 生命周期 |
| Visual Studio 2022 版本 17.9 | 1939 | 14.39 | EOL | Visual Studio 2022 生命周期 |
| Visual Studio 2022 版本 17.10 | 1940 | 14.40 | EOL | Visual Studio 2022 生命周期 |
| Visual Studio 2022 版本 17.11 | 1941 | 14.41 | EOL | Visual Studio 2022 生命周期 |
| Visual Studio 2022 版本 17.12 | 1942 | 14.42 | 2026 年 7 月 14 日 | Visual Studio 2022 生命周期 |
| Visual Studio 2022 版本 17.13 | 1943 | 14.43 | EOL | Visual Studio 2022 生命周期 |
| Visual Studio 2022 版本 17.14 | 1944 | 14.44 | 2032 年 1 月 13 日 | Visual Studio 2022 生命周期 |
下表列出了 Visual Studio 2026 及更高版本的 MSVC 生成工具版本。 从 Visual Studio 2026 开始,MSVC 版本控制与Visual Studio版本控制分离。 EOL(生命周期结束)日期由 MSVC 生命周期策略定义。
| MSVC 生成工具版本 | _MSC_VER |
Support | EOL 日期 | 详细信息 |
|---|---|---|---|---|
| 14.50 | 1950 | 长期 | 2028 年 11 月 | Visual Studio 2026 18.0 版中 C++ 开发人员的新增功能 |
| 14.51 | 1951 | 标准 | 2027 年 2 月 | MSVC 生命周期策略 |
| 14.52 | 1952 | 标准 | 预览c | MSVC 生命周期策略 |
Visual Studio 2019 版本 16.8 和 16.9 共享相同的主版本号和次版本号(因此 _MSC_VER 的值相同)。 若要区分它们,请使用 _MSC_FULL_VER。 Visual Studio 2019 版本 16.8 的 _MSC_FULL_VER 最小值是192829333。 Visual Studio 2019 版本 16.9 的 _MSC_FULL_VER 最小值是192829910。
b Visual Studio 2019 版本 16.10 和 16.11 共享相同的主版本和次要版本(因此具有相同 _MSC_VER的值)。 若要区分它们,请使用 _MSC_FULL_VER。 Visual Studio 2019 版本 16.10 的 _MSC_FULL_VER 最小值是192929917。 Visual Studio 2019 版本 16.11 的 _MSC_FULL_VER 最小值是192930129。
c MSVC 生成工具版本 14.52 为预览版。 EOL 日期将在正式发布时确定。
Microsoft C++ 编译器版本控制的简要历史记录
Visual Studio 6.0 到 Visual Studio 2015 (14.0)
对于主版本,
_MSC_VER增加 100。_MSC_FULL_VER增加 10,000,000。对于次要版本,
_MSC_VER增加 10。_MSC_FULL_VER增加 1,000,000。Note
Visual Studio .NET 2003 被视为次要版本。
Visual Studio 2017 到 Visual Studio 2022
- 对于主要版本,次要版本增加 10。
- 对于次要版本,次要版本增加 1,从 Visual Studio 2017 版本 15.3 开始。
Visual Studio 2026 及更高版本
随 Visual Studio 2026 及更高版本提供的 MSVC 构建工具从 14.50 版开始,而 _MSC_VER 则从 1950 开始。 新的 MSVC 版本-14.51/1951、14.52/1952 等,每六个月发货一次。 支持遵循 MSVC 生命周期策略。
此版本控制系统不同于早期Visual Studio版本,因为 MSVC 版本控制现在独立于Visual Studio版本控制。 这意味着编译器次要版本可以在多个Visual Studio更新中保持不变。
在任何给定时间,Visual Studio安装程序都可以提供多个 MSVC 版本:
- 包含最新变更的预览工具集
- 当前默认工具集
- 仍受支持的较早工具集
例如,截至 2026 年 5 月:
- 14.52 是预览工具集,可获取常规功能和修复更新。
- 14.51 是 2026 年 5 月发布的默认工具集,支持期为 9 个月。
- 14.50 是 2025 年 11 月发布的工具集,支持 3 年。
到 2026 年 11 月,我们预计 14.53 将成为新的预览工具集, 14.52 将成为默认工具集, 14.51 和 14.50 仍受 MSVC 生命周期策略支持。
由于以下三个原因,Microsoft更改为此模型:
- 它将 MSVC 功能开发和预览版可用性之间的时间从几个月缩短到一周左右。
- 它使 MSVC 的发布节奏与 Visual Studio 保持一致,并使长期服务版本与 .NET 长期支持(LTS)版本保持一致。
- 它减少了为旧编译器提供服务的复杂性。
从 Visual Studio 2017 开始的服务版本
使用 _MSC_FULL_VER 来区分服务版本。 内部版本字段(MMNNBBBBB 版本号中的 BBBBB)通常增加 1。
例如,_MSC_FULL_VER将 Visual Studio 2019 版本 16.8 与 16.9 区区分开来,Visual Studio 2019 版本 16.10 与 16.11 区区分开来。 这些版本共享相同的主版本和次要版本,因此它们具有相同 _MSC_VER的值。
若要区分这些版本,请使用 _MSC_FULL_VER。
Visual Studio 2019 版本 16.8 的 _MSC_FULL_VER 最小值是192829333。
Visual Studio 2019 版本 16.9 的 _MSC_FULL_VER 最小值是192829910。