如何在Visual Studio中安装(v142)生成工具

时间:2019-07-05 10:32:31

标签: c++ visual-studio

当我尝试在Visual Studio中构建某些内容时,Visual Studio向我显示一些警告,然后如果我忽略它并进行构建,则会发生错误。

    error MSB8020: The build tools for v142 (Platform Toolset = 'v142') 
    cannot be found. To build using the v142 build tools, please install 
    v142 build tools.

它还会向我显示一个替代选项,我也尝试过但不起作用。

    Alternatively, you may upgrade to the current 
    Visual Studio tools by selecting the Project menu or right-click the 
    solution, and then selecting "Retarget solution".

4 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,但是我想保留Visual Studio 2017和Visual Studio 2019的支持来构建同一项目。

我所做的是编辑.vcxproj,它是MSBuild格式的文件,如下所示:

之前(工具集1.42,仅在Visual Studio 2019中可用,在Visual Studio 2017中失败):

...
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    ...
    <PlatformToolset>v142</PlatformToolset>
    ...
  </PropertyGroup>
...

之后,Visual Studio 2017版为“ 15.0”,工具集为1.41:

...
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    ...
    <PlatformToolset Condition="'$(VisualStudioVersion)' != '15.0'" >v142</PlatformToolset>
    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'" >v141</PlatformToolset>
    ...
  </PropertyGroup>
...

答案 1 :(得分:2)

最重要的是,您需要安装Visual Studio 2019才能访问v142工具。

随着Visual Studio(VS2015,VS2017,VS2019)的不同版本,Microsoft还发布了不同的构建工具版本,因为它们继续改进编译器并提供附加功能并满足更新的语言标准(C ++,C ++ 11, C ++ 17等)。参见Visual Studio 2015 not detecting v141 (2017) Build tools

另请参阅此Microsoft博客文章,内容涉及VS2017的构建工具以及从VS2015 Visual Studio Build Tools now include the VS2017 and VS2015 MSVC Toolsets访问较旧的v140。

  

许多人告诉我们,您仍然需要MSVC v140工具集   从Visual Studio 2015中继续开发较旧的代码库。我们已经   更新了Visual Studio Build Tools,以包括来自v140的工具集   Visual Studio 2015 Update 3(包括最新服务)   发布。您可能会注意到,编译器工具集构建版本可能会   与完整的VS 2015安装中的版本不匹配,即使它们是   相同的编译器。发生这种情况是因为我们构建了完整的Visual   Studio和Visual Studio生成工具位于单独的分支中,可能会   在不同的日子建造。

     

Visual Studio生成工具中的Visual C ++生成工具工作负载   将默认安装来自VS2017的最新v141工具集。 v140   VS2015中的工具集将与v141工具集并排安装。   要安装它们,只需选择用于桌面的“ VC ++ 2015.3 v140工具集”   (x86,x64)”位于“可选”部分底部。

就您而言,V142构建工具随VS2019一起发布。似乎v142不可用于VS2017。 VS2017的最新构建工具看起来是v141。

您可以使用Visual Studio安装程序通过在列表中添加或删除列表来修改可用的生成工具。该SO发布描述了类似的问题,但在VS2015 Visual Studio安装中缺少v140。 MSbuild Error: The builds tools for v140 (Platform Toolset = 'v140') cannot be found

但是,如果Microsoft尚未针对您正在使用的Visual Studio发布特定的构建工具版本,则它将不会显示在可用工具集列表中。

作为旁注,在对这个问题进行一些发现的同时,我发现一些文章表明,如果您安装了最新的Visual Studio,然后安装了早期版本的Visual Studio,则默认的目标构建工具可以还要更改为较早安装的构建工具。

换句话说,如果您已经安装了VS2019,其默认目标为v142,然后安装VS2017,则默认目标将更改为v141,要求您在使用VS2019时将构建目标实际设置为v142。

从VS2015开始,Microsoft似乎提供了标准的Visual Studio引擎,在VS 2015,VS2017和VS2019之间共享,并且构建工具和各种组件已更新以提供新功能,新语言标准合规性。 Visual Studio版本与Visual Studio版本可以使用的构建工具和组件之间存在依赖关系。 v142在VS2017中不可用,很可能是购买新产品的动力。

答案 2 :(得分:2)

我在两台不同的计算机上同时使用Visual Studio 2017和Visual Studio 2019,并且平台工具集经常出现问题。

在VS 2019上,当打开使用VS2017创建的解决方案/项目时,我通常只需转到顶部菜单栏中的“项目”,然后选择“重新定位解决方案”(这可能会将平台设置为V142)。

相反,在VS 2017上,当打开使用VS2019创建的解决方案/项目(平台工具集v142)时,要使其正常工作,我需要将其“降级”到平台v141。为此,我选择了项目(而不是解决方案),然后选择属性,然后选择“常规”并寻找我设置为“ Visual Studio 2017(v141)”的“平台工具集”,然后可以再次编译而不会出现错误

the property panel to set the correct platform toolset

答案 3 :(得分:1)

我遇到了同样的问题,但是当tryig用VS2017打开VS2019中创建的项目时,所以我在项目中对此进行了更改:

转到:项目->属性->常规->平台工具集,然后更改为VS的当前版本。

这对我有用!