共用方式為


Microsoft C++ (MSVC) 編譯器版本設定

Microsoft C++ (MSVC) 編譯器版本包含四個欄位:

M - 主要版本 (兩位數)
N - 次要版本 (兩位數)
B - 組建版本 (五位數)
R - 修訂版本

Microsoft特定編譯程式巨集編碼這些字段,如下所示:

_MSC_VER = MMNN
_MSC_FULL_VER = MMNNBBB
_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 2017 開始的服務版本中所述

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。
  • 針對次要版本,次要版本從 Visual Studio 2017 15.3 版開始增加 1。

Visual Studio 2026 和更新版本

  • 編譯器次要版本不再與 Visual Studio 版本更新相關遞增。
  • 次要版本每當有新的 MSVC 版本發佈時就會增長 1。
  • 並非每個新的 Visual Studio 版本都會提供新的 MSVC 編譯器版本。

從 Visual Studio 2017 開始的服務版本

服務版本會以 _MSC_FULL_VER來區分。 組建欄位(MMNNBBB 版本號碼中的 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 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。

另請參閱

_MSC_VER
Visual C++ 編譯程式版本部落格文章