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

Build fails for C++/CX project with v141 platform toolset in Visual Studio 2019

我已尝试切换到 Visual Studio 2019,因为它现已正式发布,但我在构建基于 C++/CX 的项目时遇到问题。

我没有重新定位项目,但它仍然配置为使用 v141 平台工具集,即 Visual Studio 2017 Build Tools。

据我所知,我已经在 Visual Studio 2019 年专门安装了所需的构建工具,这里应该很明显:

仍然,根据项目属性,Visual Studio 2017 Build Tools 未安装:

当我构建项目时出现以下错误:

1>C:\Program Files (x86)\Microsoft Visual Studio19\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(378,5): error MSB8020: The build tools for Visual Studio 2017 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install Visual Studio 2017 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 中的错误?

编辑 我应该指出,我还在同一台计算机上安装了 Visual Studio 2017。

事实证明,(Windows运行时组件)项目没有正确设置。在 .vcxproj 文件中, ApplicationTypeRevision 元素丢失了,这也是 "evident" (如果你知道你在找什么......)从上面的项目属性来看,只有 General 配置属性节点可见,Target Platform 值为空。

在 .vcxproj 文件中紧跟例如WindowsTargetPlatformMinVersion 元素应该可以解决问题:

<ApplicationTypeRevision>10.0</ApplicationTypeRevision>

很可能,还需要添加 C++ 通用 Windows 平台工具 。 v142 版本在尝试创建新的 C++ 通用 Windows 平台项目时可用。据我所知,此组件在 Visual Studio 安装程序中不可见?安装v142组件后,相应的v141组件也可以安装了。

我遇到了类似的问题,但这正是我所缺少的。

您将在 VS 安装程序的“工作负载”选项卡上的“安装详细信息”下的右侧(即不在“单个组件”下)找到这些选项。

我在 Visual Studio 2017 年遇到了同样的问题,尽管 V141 已明确显示为已安装。原来问题是 VCTargetsPath 在系统环境变量中设置为 "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\V4.0\V140"。删除或取消设置此变量解决了问题。

我怀疑这个变量是在 Visual Studio 2015 的早期安装过程中设置的。即使在卸载所有其他 Visual Studio 之后,该变量也从未被删除,问题仍然存在。