Visual Studio 2019中的并排次要版本MSVC工具集

Visual Studio 2019版本16.1预览版3 附带v142 MSVC工具集的第一个并排次要版本。我们首先用VisualStudio2017发布了MSVC工具集的小型并行版本,但在2019年有一些变化;主要是安装程序中工具集的更细粒度版本以及对CMake项目的支持。

null

对于那些不熟悉这些次要版本MSVC工具集的人,我建议查看我们的 上一篇关于小型并行工具集的文章 . 它包含了更多关于何时以及如何使用此功能的详细信息。通常,您不需要使用这些次要的版本化工具集。相反,对于那些发现源代码或MSVC中有一个bug的开发人员来说,这个特性是一个“逃生舱口”,它不容易解决或及时修复。如果源代码中存在一致性问题,最好的选择是 应用适当的修复程序使代码符合要求 如果可能的话(有时代码中需要的更改太多,无法立即修复)。如果你认为MSVC有一个bug,最好和我们谈谈,这样我们就可以修复这个bug或者提供一个解决方法。

安装次要版本工具集

Visual Studio 2017和2019之间最大的变化是如何将这些次要工具集分解。在VisualStudio2019中,我们开始按体系结构划分工具集,次要工具集也遵循这种做法。而在2017年,只有一个次要的工具集需要安装,而在2019年,您将需要选择为其构建项目的所有体系结构。

您可以通过visualstudio安装程序安装MSVC工具集的次要版本。“桌面C++开发”工作负载将始终安装最新版本的工具集。但是,如果您导航到安装程序中的“单个组件”选项卡并滚动到“编译器、构建工具和运行时”,您将看到所有可用的MSVC工具集,包括次要版本。

例如,您可能会看到“MSVC v142”工具集的“(v14.20)”和“(v.14.21)”版本。在最新版本预览版中,您还将看到“(v14.22)”和“(v14.23)”最新版本。

Minor versions of the MSVC toolsets in the Visual Studio installer.

使用次要版本工具集

如果使用C++ MSBuw项目,则使用MSVC工具集的未修改版本没有更改。

并排次要版本MSVC工具集不会出现在项目配置属性的“平台工具集”选项中。要启用它们,您需要编辑 .VCX项目 为您的项目创建文件。每个并排次要版本MSVC工具集都包含一个 .道具 可以包含在项目的 .VCX项目 文件。

在开始之前,应该添加 -英属维尔京群岛 编译器选项作为编译器命令行上的附加选项。这将在生成输出框中显示详细的编译器版本信息。只需在项目属性> C/C++ >命令行编辑框中输入“-Bv”。

Enable “-Bv” compiler option with project property pages “C/C++ > Command Line.”

现在,打开安装Visual Studio版本16.1预览版3的文件夹中的“VCAuxiliaryBuild14.20”目录。例如,使用默认安装位置,您将在此处找到它:“C:Program Files(x86)Microsoft Visual StudioPreviewEnterpriseVCAuxiliaryBuild14.20”。您应该会在该文件夹中看到三个文件。您需要将其中一个“Microsoft.VCToolsVersion.14.20.props”复制到您的解决方案目录中。

Copy the toolsets “.props” file.

接下来,右键单击解决方案并选择“在文件资源管理器中打开文件夹”,打开包含解决方案的文件夹。

Open the project directory.

将“Microsoft.VCToolsVersion.14.20.props”复制到解决方案目录中。该文件应与项目的解决方案文件位于同一目录中,例如Project6.sln。

Copy the toolset’s “.props” file to the project directory.

现在通过右键单击项目并选择“unload project”卸载项目。卸载项目后,可以通过单击项目并选择“编辑[ProjectName]”来编辑项目。找到写着:

<Import Project="$(VCTargetsPath)Microsoft.Cpp.Default.props" />

直接添加行 在上面 导入 Microsoft.VCToolsVersion.14.20.props版本 您刚刚复制到解决方案目录中的:

<Import Project="$(SolutionDir)Microsoft.VCToolsVersion.14.20.props" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.Default.props" />

现在,保存文件,然后右键单击项目名称并选择“reloadproject”。如果尚未保存该文件,系统将提示您关闭打开的.vcxproj文件。选择“是”关闭文件。现在,当您重建解决方案时,您将看到您正在使用14.20 MSVC编译器工具集。

在CMake中使用次要版本工具集

您还可以将这些工具集无缝地用于 CMake项目 在visualstudio中也是如此。为此,您需要在CMakeSettings文件中创建一个名为“VCToolsVersion”的环境变量,并将其设置为您需要使用的次要版本,例如“14.20”。为此,您需要直接修改CMake设置文件的JSON。如果您在CMake设置编辑器中,可以使用右上角的“editjson”按钮访问JSON。

现在,您只需要删除缓存“Project>CMake cache>delete cache”并重新生成它“Project>Generate cache”。您可以通过检查输出窗口中的编译器路径来确认CMake正在使用正确的工具集。

Toolset 14.20 being used instead of the latest version 14.23 with the “VCToolsVersion” variable.

如果您在IDE之外使用CMake项目,那么仍然可以使用MSVC工具集的次要版本。按照下面的说明设置命令行以使用所需的工具集,然后运行CMake来配置项目。配置项目后,选定的次要工具集将保存在CMake缓存中,然后可以从任何环境中使用。

在命令行中使用次要版本工具集

如果 您需要从命令行使用一个并排的次要版本MSVC工具集,您只需要自定义一个开发人员命令提示符。随Visual Studio 2019版本16.1 Preview 3一起安装的命令提示位于 VCAuxiliaryBuild公司 VS install目录的子目录。例如,对于默认安装路径,它们位于 C:程序文件(x86)Microsoft Visual Studio IOPreviewEnterpriseVCauxiliaryBuild 目录。

在该文件夹中,您将找到四个开发人员命令提示(名为 vcvars*.bat)。选择任意一个并创建一个要编辑的副本。这些文件的内容非常简单:它们都只是调用 vcvarsall.bat具有适当的体系结构参数。我们也会这样做,但是添加一个新参数 vcvarsall.bat公司 要为v14.20工具集设置环境,请执行以下操作: -vcvarsu ver=14.20。

您可以运行“cl-Bv”来显示为工具的正确版本设置了环境。

我们希望你能 下载Visual Studio 2019 试试看。一如既往,我们欢迎您的反馈。我们可以通过下面的评论或电子邮件联系我们( visualcpp@microsoft.com ). 如果您在使用visualstudio或MSVC时遇到问题,或者有什么建议,请告诉我们 帮助>发送反馈>报告问题/提供建议 在产品中,或通过 开发者社区 . 你也可以在Twitter上找到我们( @视觉 ).

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享