如何安装v141_xp的VC 2017构建工具?

32
我正在使用MSVC 2017社区版的最新版本,并使用平台工具集v141,但是我想让可执行文件仍然在XP上运行,因此我认为我需要使用v141_xp工具集。但是使用该工具集会导致以下错误:
“错误 MSB8020: 找不到 v141_xp (平台工具集 = 'v141_xp') 的构建工具。若要使用 v141_xp 构建工具进行生成,请安装 v141_xp 构建工具。或者,您可以通过选择“项目”菜单或右键单击解决方案,然后选择“重新定位解决方案”,升级到当前的 Visual Studio 工具。”
在MSVC安装程序中没有找到类似的内容。有什么想法吗?
3个回答

55
我不确定你的问题是安装Windows XP的C++工具还是修改你的项目/解决方案以针对该平台。无论如何,以下链接应该会有所帮助。
以下是安装工具包的简要步骤:
  • 打开Visual Studio安装程序(工具 -> 获取工具和功能)
  • 选择C++桌面开发
  • 摘要部分中选择Windows XP支持的C++
  • 点击修改

enter image description here

enter image description here


3
该名称在 VC 2019 中已更改。现在的名称是:“C++ Windows XP 支持 for VS 2017 v141”。 - Mordred
3
我目前使用的VS2019预览版安装程序只在“单个组件”>“编译器、构建工具和运行时”>“C++ Windows XP支持VS 2017(v141)工具[已弃用]”下列出。它不再在“工作负载”页面上列出。 - Ray
1
如果从命令行安装,则要添加的组件为 Microsoft.VisualStudio.Component.WinXPMicrosoft.VisualStudio.ComponentGroup.NativeDesktop.WinXP - Andreas

18

在Visual Studio 2019中,此选项已被弃用,但您仍然可以选择它 :)

以下是安装工具集的摘要:

  • 打开Visual Studio安装程序(工具->获取工具和功能)
  • 选择个别组件
  • 从摘要部分中选择支持C++的Windows XP
  • 点击修改

输入图像描述


1
另外顺便提一下,这个选项在 VS 2022 预览版 4 中仍然可用。我已经尝试在 VS 2017、VS 2019 和 VS 2022 中构建我的解决方案,它们都能够成功构建。 - micdev42
2
请注意,@Micdev42,VS 2022 不使用与 XP 兼容的 CRT。后端使用了一些 Vista+ 实现,例如 std::shared_mutex 在 VS 2019 14.27 工具集版本... 后使用了 SRWLock,尽管在 XP 编译器和针对 XP 进行编译时可以正常构建应用程序,但实际上无法在 XP 上运行。并且需要关闭线程安全静态初始化 /Zc:threadSafeInit,因为它使用了 Vista+ 技术;否则静态对象将为空,没有构造函数运行。 - Phi
VS 2022开箱即用不包含v141_xp,是的。如果按照上面所示单独选择工具集,它仍然可以正常工作,并且在最新的安装程序中仍然正式可用(还要注意其他“v141”库/工具,如MFC,仍然与其兼容)。至于/Zc:threadSafeInit-,这是一个在v140_xp中出现的错误,并且已经在下一个版本中修复了。 - mirh

1

我曾经遇到过类似的问题,原因是由于一个不必要的VCTargetsPath系统变量。删除后,VS 2017现在可以看到V141工具集。我先安装了VS 2017社区版,可能这导致了问题。


1
删除VCTargetsPath系统变量对我有用!谢谢! - Sahil Lakhwani

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