我正在尝试使用 Visual Studio 2019 为 Windows XP 编译应用程序。为此,我尝试使用平台工具集 v140_xp。它不起作用,出现以下错误消息:
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Win32\PlatformToolsets\v140_xp\Toolset.targets(36,5): warning MSB8003: Could not find WindowsSdkDir_71A variable from the registry. TargetFrameworkVersion or PlatformToolset may be set to an invalid version number.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(366,5): warning MSB8003: Could not find WindowsSDKDir variable from the registry. TargetFrameworkVersion or PlatformToolset may be set to an invalid version number.
显然,这些工具正在寻找 Windows SDK v7.1A。从 Microsoft 下载 Windows 7 SDK 不起作用。即使您设法安装它,SDK 也有 7.1 版(没有 A)而不是 7.1A。所以错误仍然存在。
我发现 Windows SDK v7.1A 曾经包含在 Visual Studio 2015 中,但我在 Visual Studio 2019 安装程序中的任何地方都找不到它。
如何使用 v140_xp 工具集?
重现问题的步骤:
- 使用桌面 c++ 开发安装 Visual Studio 2019
- 在 Visual Studio 2019 安装程序中选择“MSVC v140 - VS2015 C++ Build tools”
- 创建 C++ 控制台应用程序项目
- 编辑项目设置
- 选择 v140_xp 平台工具集
- 尝试构建项目
原文由 Sven 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Visual Studio 2019 安装程序中,Windows SDK 7.1A 隐藏在“C++ Windows XP Support for VS 2017 (v141) tools [Deprecated]”选项后面。
将鼠标悬停在该选项上会出现一个工具提示,指出 Windows SDK 7.1 包含在该组件中。
此处描述了整个过程: https ://learn.microsoft.com/en-us/cpp/build/configuring-programs-for-windows-xp?view=vs-2019