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中所述的 。
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 版本更新相关的编译器次要版本不再递增。
- 每发布一个新的 MSVC 版本,次要版本号就增加 1。
- 并非每个新的 Visual Studio 版本都会提供新的 MSVC 编译器版本。
从 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。
版本宏
回想一下,版本号由四个字段组成:
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。
下表列出了对应于每个Microsoft C++编译器(_MSC_VER)和 MSVC 生成工具版本的 Visual Studio 版本:
| Visual Studio 版本 | _MSC_VER |
MSVC 生成工具版本 |
|---|---|---|
| Visual Studio 6.0 | 1200 | 6.0 |
| Visual Studio .NET 2002 (7.0) | 1300 | 7.0 |
| Visual Studio .NET 2003 (7.1) | 1310 | 7.1 |
| Visual Studio 2005 (8.0) | 1400 | 8.0 |
| Visual Studio 2008 (9.0) | 1500 | 9.0 |
| Visual Studio 2010 (10.0) | 1600 | 10.0 |
| Visual Studio 2012 (11.0) | 1700 | 11.0 |
| Visual Studio 2013 (12.0) | 1800 | 12.0 |
| Visual Studio 2015 (14.0) | 1900 | 14.0 |
| Visual Studio 2017 RTW (15.0) | 1910 | 14.10 |
| Visual Studio 2017 版本 15.3 | 1911 | 14.11 |
| Visual Studio 2017 版本 15.5 | 1912 | 14.12 |
| Visual Studio 2017 版本 15.6 | 1913 | 14.13 |
| Visual Studio 2017 15.7 版 | 1914 | 14.14 |
| Visual Studio 2017 版本 15.8 | 1915 | 14.15 |
| Visual Studio 2017 版本 15.9 | 1916 | 14.16 |
| Visual Studio 2019 RTW 16.0 | 1920 | 14.20 |
| Visual Studio 2019 版本 16.1 | 1921 | 14.21 |
| Visual Studio 2019 版本 16.2 | 1922 | 14.22 |
| Visual Studio 2019 版本 16.3 | 1923 | 14.23 |
| Visual Studio 2019 版本 16.4 | 1924 | 14.24 |
| Visual Studio 2019 版本 16.5 | 1925 | 14.25 |
| Visual Studio 2019 版本 16.6 | 1926 | 14.26 |
| Visual Studio 2019 版本 16.7 | 1927 | 14.27 |
| Visual Studio 2019 版本 16.8、16.9 a | 1928 | 14.28 |
| Visual Studio 2019 版本 16.10、16.11 b | 1929 | 14.29 |
| Visual Studio 2022 RTW 17.0 | 1930 | 14.30 |
| Visual Studio 2022 版本 17.1 | 1931 | 14.31 |
| Visual Studio 2022 版本 17.2 | 1932 | 14.32 |
| Visual Studio 2022 版本 17.3 | 1933 | 14.33 |
| Visual Studio 2022 版本 17.4 | 1934 | 14.34 |
| Visual Studio 2022 版本 17.5 | 1935 | 14.35 |
| Visual Studio 2022 版本 17.6 | 1936 | 14.36 |
| Visual Studio 2022 版本 17.7 | 1937 | 14.37 |
| Visual Studio 2022 版本 17.8 | 1938 | 14.38 |
| Visual Studio 2022 版本 17.9 | 1939 | 14.39 |
| Visual Studio 2022 版本 17.10 | 1940 | 14.40 |
| Visual Studio 2022 版本 17.11 | 1941 | 14.41 |
| Visual Studio 2022 版本 17.12 | 1942 | 14.42 |
| Visual Studio 2022 版本 17.13 | 1943 | 14.43 |
| Visual Studio 2022 版本 17.14 | 1944 | 14.44 |
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。