繁体   English   中英

如何在 Visual Studio 中安装 (v142) 构建工具

[英]How to install (v142) Build tools in 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".

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

随着 Visual Studio 的不同版本(VS2015、VS2017、VS2019),Microsoft 还发布了不同的构建工具版本,因为它们不断改进编译器并提供附加功能并满足更新的语言标准(C++、C++11、C++ 17 等)。 请参阅Visual Studio 2015 未检测到 v141 (2017) 构建工具

另请参阅这篇关于 VS2017 构建工具和从 VS2015 访问旧版 v140 的 Microsoft 博客文章, Visual Studio 构建工具现在包括 VS2017 和 VS2015 MSVC 工具集

你们中的许多人告诉我们,您仍然需要 Visual Studio 2015 的 MSVC v140 工具集来继续构建旧代码库。 我们已更新 Visual Studio 构建工具以包含来自 Visual Studio 2015 更新 3 的 v140 工具集,包括最新的服务版本。 您可能会注意到编译器工具集构建版本可能与完整 VS 2015 安装中的版本不匹配,即使它们是相同的编译器。 发生这种情况是因为我们在可能在不同日期构建的不同分支中构建完整的 Visual Studio 和 Visual Studio 构建工具。

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

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

您可以使用 Visual Studio 安装程序通过在列表中添加或删除来修改可用的构建工具。 这个 SO 帖子描述了一个类似的问题,但在 VS2015 Visual Studio 安装中缺少 v140。 MSbuild 错误:找不到 v140(平台工具集 = 'v140')的构建工具

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

看起来从 VS2015 开始,Microsoft 提供了一个在 VS 2015、VS2017 和 VS2019 之间共享的标准 Visual Studio 引擎,其中构建工具和各种组件正在更新,以提供新的特性和功能以及新的语言标准合规性。 Visual Studio 版本与 Visual Studio 版本可以使用哪些构建工具和组件之间存在依赖关系,例如 v142 不适用于 VS2017,这很可能是为了鼓励购买较新的产品。

安装VS2019后安装VS2017

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

换句话说,如果你已经安装了默认目标为 v142 的 VS2019,然后再安装 VS2017,那么默认目标将变为 v141,需要你在使用 VS2019 时实际将构建目标设置为 v142。

我遇到了同样的问题,但是当尝试使用 VS2017 打开在 VS2019 中创建的项目时,我在我的项目中进行了更改:

转到:Project->Properties->General->Platform Toolset 并更改为 VS 的当前版本。

我遇到了同样的问题,但我想保留 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>
...

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

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

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

设置正确平台工具集的属性面板

这对我有用:进入ProjectName.vcxproj文件并删除 v142 构建脚本并替换为与您正在使用的 Microsoft Visual Studio 版本相对应的构建脚本,或者删除脚本并重新定位您的项目(如果它是升级的 MVSC)。

安装VS2019的最新升级后,我遇到了与原始海报完全相同的问题,即错误MSB8020 re:在VS2017中构建应用程序。 我使用了系列中没有构建的最简单的应用程序(均出现上述错误),并使用了“重定向解决方案”,选择了 Windows SDK 版本 10.0.17763.0。 之后,我进行了重建,应用程序构建得很好。 我检查了解决方案中每个项目的属性,如您所料,Windows SDK 版本已更改为 10.0.17763.0。

然后当我打开其他 VS2017 应用程序时,它们都构建得很好,没有做任何更改(这些应用程序之前都失败了)。 但是,他们的项目属性仍然指的是 SDK 版本 10.0.14393.0,大概是 VS2019 版本。 现在,所有应用程序都“神奇地”将其工具集显示为 Visual Studio 2017 (v141)。 HTH,即使没有解释它为什么起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM