在Visual Studio 2019中,使用v141平台工具集构建C++/CX项目失败。

6
我尝试切换到Visual Studio 2019,因为它现在已经正式发布了,但是我在构建基于C++/CX的项目时遇到了问题。
我没有重新定位项目,但它仍然配置为使用v141平台工具集,即Visual Studio 2017 Build Tools。
据我所知,我已经在Visual Studio 2019中专门安装了所需的构建工具,这应该在这里显而易见:

enter image description here enter image description here

然而,根据项目属性,Visual Studio 2017构建工具尚未安装:

enter image description here

当我构建项目时,出现以下错误:
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(378,5): error MSB8020: 找不到 Visual Studio 2017(平台工具集 = 'v141')的构建工具。 若要使用 v141 构建工具,请安装 Visual Studio 2017 构建工具。 或者,您可以选择“项目”菜单或右键单击解决方案,然后选择“重新定位解决方案”,以升级为当前的 Visual Studio 工具。
我的安装是否仍然缺少某些组件,还是这是 Visual Studio 2019 中的错误?
编辑:我应该指出,我仍然在同一台计算机上安装有 Visual Studio 2017。

1
经历了类似的问题,值得指出的一件事是,在编译错误中可以看到路径中包含了v160(VS2019工具),而实际上应该是v150(VS2017工具)。因此,正确的v141 MSVC++工具集未被找到,因为它最终将与VS2017工具共存。 - L-S
3个回答

8

在这里输入图片描述

我曾遇到类似问题,但是我缺少了以下内容。

您可以在VS安装程序的工作负载选项卡中找到这些选项,在安装详细信息下方的右侧(即不在单独的组件下)。


谢谢Ben!我一直在抓狂,试图弄清楚为什么它一直给我错误提示,而我明明已经安装了v141构建工具。 - Allen Rufolo

3
事实证明,(Windows Runtime Component)项目没有正确设置。在.vcxproj文件中缺少ApplicationTypeRevision元素,这也可以从上面的项目属性中“清楚地”看到(如果你知道你在找什么…),只有General配置属性节点可见,而Target Platform 值为空。 在.vcxproj文件中紧随例如 WindowsTargetPlatformMinVersion 元素之后立即插入以下行应该就可以解决问题:
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>

很有可能需要添加C++通用Windows平台工具。尝试创建新的C++通用Windows平台项目时,v142版本可用。据我所知,在Visual Studio Installer中无法看到此组件。安装v142组件后,相应的v141组件也可供安装。


1
我曾经在使用Visual Studio 2017时遇到了同样的问题,尽管V141已被明确显示为已安装。原来问题出在System Environment Variables中的VCTargetsPath被设置为"C:\Program Files (x86)\MSBuild\Microsoft.Cpp\V4.0\V140"。删除或取消此变量即可解决问题。
我怀疑这个变量是在早期安装Visual Studio 2015时设置的。即使卸载了所有其他Visual Studios,该变量也从未被删除,问题仍然存在。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接