当我试图在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".
发布于 2019-12-02 23:10:29
底线是您需要安装Visual Studio2019才能访问v142工具。
随着Visual Studio的不同版本(VS2015,VS2017,VS2019),微软还发布了不同的构建工具版本,因为它们不断改进编译器,提供额外的功能,并满足更新的语言标准(C++,C++11,C++17等)。请参阅Visual Studio 2015 not detecting v141 (2017) Build tools
另请参阅这篇微软博客文章,内容是关于VS2017的构建工具和从VS2015,Visual Studio Build Tools now include the VS2017 and VS2015 MSVC Toolsets访问旧版v140。
你们中的许多人已经告诉我们,你们仍然需要Visual Studio2015中的v140工具集来继续构建旧的代码库。我们已经更新了Visual Studio构建工具,以包括Visual Studio 2015更新3中的v140工具集,包括最新的服务版本。您可能会注意到,编译器工具集内部版本可能与完整VS 2015安装中的版本不匹配,即使它们是相同的编译器。这是因为我们在不同的分支中构建完整的Visual Studio和Visual Studio构建工具,这些分支可能是在不同的日期构建的。
默认情况下,Visual Studio build tools中的Visual C++ Build Tools工作负载将从VS2017安装最新的v141工具集。VS2015的v140工具集将与v141工具集并行安装。要安装它们,只需选择“Optional”部分底部的“VC++ 2015.3 v140 toolset for desktop (x86,x64)”即可。
在您的例子中,V142构建工具是随VS2019一起发布的。对于VS2017,v142似乎不可用。最新的VS2017构建工具似乎是v141。
您可以使用Visual Studio安装程序通过在列表中添加或删除来修改可用的生成工具。这篇文章描述了一个类似的问题,但VS2015 Visual Studio安装中缺少v140。MSbuild Error: The builds tools for v140 (Platform Toolset = 'v140') cannot be found
但是,如果Microsoft没有为您正在使用的Visual Studio发布特定的构建工具版本,那么它将不会显示在可用工具集的列表中。
看起来从VS2015开始,微软正在提供一个标准的Visual Studio引擎,该引擎在VS 2015,VS2017和VS2019之间共享,构建工具和各种组件正在更新,以提供新的特性和功能以及新的语言标准兼容性。Visual Studio版本与Visual Studio版本可以使用的构建工具和组件之间存在依赖关系,例如,VS2017不能使用v142,这很可能是为了激励人们购买较新的产品。
在安装VS2019之后安装VS2017时的
顺便说一句,在对这个问题进行一些探索时,我发现了一些文章,这些文章指出,如果您安装了最新的Visual Studio,然后安装了Visual Studio的早期版本,则默认的目标构建工具也可以更改为早期安装的构建工具。
换句话说,如果您已经安装了默认目标为v142的VS2019,然后安装了VS2017,则默认目标将更改为v141,要求您在使用VS2019时将构建目标实际设置为v142。
发布于 2019-11-10 23:07:50
我也遇到了同样的问题,但是当我试图用VS2017打开一个在VS2019中创建的项目时,我在我的项目中更改了这个:
转到:项目->属性->通用->平台工具集,并更改为您的VS的当前版本。
发布于 2020-05-05 22:40:43
我也有同样的问题,但我想保留Visual Studio 2017、Visual Studio 2019和Visual Studio 2022对构建相同项目的支持。
我所做的是编辑我的.vcxproj
,它是一个MSBuild格式的文件,如下所示:
之前(工具集1.42,仅在Visual Studio 2019中可用,在Visual Studio 2017和2022中失败):
...
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
...
<PlatformToolset>v142</PlatformToolset>
...
</PropertyGroup>
...
之后,每个Visual Studio版本都使用自己的工具集版本:
...
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
...
<PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '17.0'">v143</PlatformToolset>
...
</PropertyGroup>
...
https://stackoverflow.com/questions/56901371
复制相似问题