内容提要
微软宣布在Visual Studio 2022 v17.10中推出MSVC Toolset的14.40版本,并将在未来的版本中继续增加。此更新将对构建系统和库产生影响,需要进行相应调整。建议使用旧版本的MSVC Toolset或通过项目属性进行选择。微软鼓励用户提供反馈意见。
延伸解读
版本号变化与目录结构
MSVC 工具集的小版本号从 14.39 升至 14.40,并将在后续 VS 2022 版本中继续以 14.4x 递增。安装目录格式为 [VSInstallDir]\VC\Tools\MSVC\14.4x.BBBBB,其中 4x 为 40-49 的数字,BBBBB 为五位构建号。这意味着开发者需要留意路径中的版本标识,确保构建脚本和工具能正确识别新目录。
对构建系统和库的影响
C++ 项目系统(MS Build)将更新以支持 v143 平台工具集下的 14.4x 工具集,CMake 支持已验证兼容。但自定义构建系统、项目、库和 VS 扩展若检查 MSVC 版本,需调整以允许 14.4x。例如,检查 _MSC_VER 宏并假设所有 VS 2022 版本值低于 1940 的代码必须更新,否则可能误判版本导致构建失败。
应对内置检查问题的建议
如果构建环境中的内置检查无法立即更新,微软建议使用旧版 MSVC 工具集。可通过并行小版本工具集功能,或在 C++ 项目系统中按项目选择:项目属性 > 高级 > MSVC 工具集版本,下拉列表会显示 v143 平台工具集下已安装的工具集。这为过渡期提供了灵活性,避免因版本检查导致构建中断。
Q&A
Visual Studio 2022 v17.10 中 MSVC 工具集的小版本号是多少?
在 Visual Studio 2022 v17.10 中,MSVC 工具集的小版本号是 14.40,并将在未来的版本中继续以 '14.4x' 系列递增。
MSVC 工具集 14.40 的安装目录格式是怎样的?
在 Visual Studio v17.10 及后续版本中,MSVC 工具集的安装目录格式为:[VSInstallDir]\VC\Tools\MSVC\14.4x.BBBBB,其中 '4x' 是 40-49 的数字,'BBBBB' 是 5 位构建版本号。
MSVC 工具集 14.40 对构建系统和库有什么影响?
在 Visual Studio 2022 v17.10 及更高版本中,内置项目系统已更新以支持 14.4x 版本的 MSVC 工具集。C++ 项目系统(MS Build)在 v143 平台工具集下支持 '14.4x'。CMake 支持已验证兼容。但自定义构建系统、项目、库和 VS 扩展如果检查有效的 MSVC 构建版本,则需要调整以允许 '14.4x'。例如,检查 _MSC_VER 宏并假设所有 Visual Studio 2022 版本的 MSVC 值低于 1940 的代码需要更新。
如何应对 MSVC 工具集 14.40 带来的内置检查问题?
如果无法立即更新构建环境中的内置检查,建议通过“并行小版本 MSVC 工具集”功能使用旧版本的 MSVC 工具集。也可以在 C++ 项目系统中按项目选择:项目属性 > 高级 > MSVC 工具集版本,下拉菜单会列出 v143 平台工具集下已安装的 MSVC 工具集。
Visual Studio 2022 各更新版本对应的 MSVC 版本和 _MSC_VER 是什么?
根据文章中的表格,Visual Studio 2022 各版本对应的 MSVC 版本和 _MSC_VER 如下:17.0: 19.30.30705 (1930),17.1: 19.31.31103 (1931),17.2: 19.32.31326 (1932),17.3: 19.33.31629 (1933),17.4.14: 19.34.31948 (1934),17.5.3: 19.35.32216 (1935),17.6.11: 19.36.32544 (1936),17.7.7: 19.37.32826 (1937),17.8.6: 19.38.33135 (1938),17.9: 19.39.xxxxx (1939),17.10: 19.40.xxxxx (1940)。
如何向微软提供关于 MSVC 工具集的反馈?
可以通过 Visual Studio 开发者社区提交反馈,也可以发送邮件至 visualcpp@microsoft.com,或在 Twitter 上 @VisualC 联系。