分享方式:


Microsoft Visual C++ 編譯程式版本控制

Microsoft Visual C++ 編譯程式版本包含四個字段:

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。

注意

Visual Studio 2019 16.8 和 16.9 共用相同的主要和次要版本,因此 對 _MSC_VER具有相同的值。 Visual Studio 2019 16.10 和 16.11 也一樣。 若要區分它們,請使用_MSC_FULL_VER從 Visual Studio 2017 開始的服務版本中所述

Visual 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。

    注意

    Visual Studio .NET 2003 被視為次要版本。

Visual Studio 2017 和更新版本

  • 針對主要版本,次要版本會增加 10。
  • 針對次要版本,次要版本從 Visual Studio 2017 15.3 版開始增加 1。

從 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 年。

下表列出每個 Visual Studio 版本的 Visual C++ 編譯程式 _MSC_VER

Visual Studio 版本 _MSC_VER
Visual Studio 6.0 1200
Visual Studio .NET 2002 (7.0) 1300
Visual Studio .NET 2003 (7.1) 1310
Visual Studio 2005 (8.0) 1400
Visual Studio 2008 (9.0) 1500
Visual Studio 2010 (10.0) 1600
Visual Studio 2012 (11.0) 1700
Visual Studio 2013 (12.0) 1800
Visual Studio 2015 (14.0) 1900
Visual Studio 2017 RTW (15.0) 1910
Visual Studio 2017 15.3 版 1911
Visual Studio 2017 15.5 版 1912
Visual Studio 2017 15.6 版 1913
Visual Studio 2017 15.7 版 1914
Visual Studio 2017 15.8 版 1915
Visual Studio 2017 15.9 版 1916
Visual Studio 2019 RTW 16.0 1920
Visual Studio 2019 16.1 版 1921
Visual Studio 2019 16.2 版 1922
Visual Studio 2019 16.3 版 1923
Visual Studio 2019 16.4 版 1924
Visual Studio 2019 16.5 版 1925
Visual Studio 2019 16.6 版 1926
Visual Studio 2019 16.7 版 1927
Visual Studio 2019 16.8 版、16.9 a 1928
Visual Studio 2019 16.10 版,16.11 b 1929
Visual Studio 2022 RTW 17.0 1930
Visual Studio 2022 17.1 版 1931
Visual Studio 2022 17.2 版 1932
Visual Studio 2022 17.3 版 1933
Visual Studio 2022 17.4 版 1934
Visual Studio 2022 17.5 版 1935
Visual Studio 2022 17.6 版 1936
Visual Studio 2022 17.7 版 1937
Visual Studio 2022 17.8 版 1938
Visual Studio 2022 17.9 版 1939
Visual Studio 2022 17.10 版 1940

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++ 編譯程式版本部落格文章