配置适用于 Windows XP 的程序

Visual Studio 支持多个平台工具集。 这意味着可以面向不受默认工具集支持的操作系统和运行时库。 例如,通过切换平台工具集,可以使用 Visual Studio 2017 C++ 编译器创建面向 Windows XP 和 Windows Server 2003 的应用。 还可以使用较旧的平台工具集来维护二进制兼容旧代码,同时仍然可以利用 Visual Studio IDE 的最新功能。

Visual Studio 2019 及更高版本中提供的工具集不支持为 Windows XP 创建代码。 可以使用 Visual Studio 2017 v141_xp 工具集进行 Windows XP 开发。 可以在 Visual Studio 安装程序中将 v141_xp 工具集作为单个组件选项进行安装。

安装 Windows XP 平台工具集

若要使 Visual Studio 2017 平台工具集和组件可面向 Windows XP 和 Windows Server 2003,请运行 Visual Studio 安装程序。 在最初安装 Visual Studio 时或修改现有安装时,请确保选择“使用 C++ 的桌面开发”工作负载。 在此工作负载的可选组件列表中,选择“针对 C++ 的 Windows XP 支持”,然后选择“安装”或“修改”

若要使 v141_xp 平台工具集和组件可面向 Windows XP 和 Windows Server 2003,请运行 Visual Studio 安装程序。 在最初安装 Visual Studio 时或修改现有安装时,请确保选择“使用 C++ 的桌面开发”工作负载。 在“单个组件”选项卡上的“编译器、生成工具和运行时”下,选择“对 VS 2017 (v141)工具的 C++ Windows XP 支持 [已弃用]”,然后选择“安装”或“修改”

Windows XP 定向体验

Visual Studio 中包含的 Windows XP 平台工具集是 Windows 7 SDK 的一个版本,但它使用 Visual Studio 2017 C++ 编译器。 它还将项目属性配置为适当的默认值,例如,为低级别的定向规范兼容的链接器。 只有使用 Windows XP 平台工具集创建的 Windows 桌面应用才能在 Windows XP 和 Windows Server 2003 上运行。 这些应用也可以在更新的 Windows 操作系统上运行。

若要针对 Windows XP

  1. 在“解决方案资源管理器”中,打开项目的快捷菜单,然后选择“属性”

  2. 在项目的“属性页”对话框中,将“配置”下拉列表设置为“所有配置”

  3. 选择“配置属性”>“常规”属性页。 将“平台工具集”属性设置为首选 Windows XP 工具集。 例如,选择“Visual Studio 2017 - Windows XP (v141_xp)”,通过使用 Visual Studio 2017 提供的 Microsoft C++ 编译器为 Windows XP 和 Windows Server 2003 创建代码

C++ 运行时支持

除了 Windows XP 平台工具集之外,一些库还包含对 Windows XP 和 Windows Server 2003 的运行时支持:

  • 通用 C 运行时库 (UCRT)
  • C++ 标准库
  • 活动模板库 (ATL)
  • 并发运行时库 (ConcRT)
  • 并行模式库 (PPL)
  • Microsoft 基础类库 (MFC)
  • C++ AMP (C++ Accelerated Massive Programming) 库。

这些操作系统受支持的最低版本为:适用于 x86 的 Windows XP Service Pack 3 (SP3)、适用于 x64 的 Windows XP Service Pack 2 (SP2) 以及适用于 x86 和 x64 的 Windows Server 2003 Service Pack 2 (SP2)。

这些库受通过 Visual Studio 安装的平台工具集的支持,具体取决于目标:

Library 面向 Windows 桌面应用程序的默认平台工具集 面向 Store 应用的默认平台工具集 面向 Windows XP 和 Windows Server 2003 的 Windows XP 平台工具集
CRT X X X
C++ 标准库 X X X
ATL X X X
ConcRT/PPL X X X
MFC X X
C++ AMP X X

注意

用 C++/CLI 编写且面向 .NET Framework 4 的应用在 Windows XP 和 Windows Server 2003 上运行。

工具集之间的差异

由于平台和库支持的不同,使用 Windows XP 平台工具集的应用的开发体验不及使用默认平台工具集的应用完整。

  • C++ 语言功能

    在使用 v141_xp 平台工具集的应用中仅支持在 Visual Studio 2017 中实现的 C++ 语言功能。 在使用 v140_xp 平台工具集的应用中仅支持在 Visual Studio 2015 中实现的 C++ 语言功能。 Visual Studio 在使用较旧的平台工具集进行生成时会使用相应的编译器。 使用最新的 Windows XP 平台工具集以利用在该版本的编译器中实现的最新 C++ 语言功能。 有关编译器版本支持的语言功能的详细信息,请参阅 Microsoft C/C++ 语言一致性

  • 远程调试

    Visual Studio 远程工具不支持在 Windows XP 或 Windows Server 2003 上进行远程调试。 若要在 Windows XP 或 Windows Server 2003 上以本地或远程方式调试应用,请使用来自 Visual Studio 较早版本的调试器。 这类似于在 Windows Vista 上调试应用:Vista 是平台工具集的运行时目标,而不是远程调试的目标

  • 静态分析

    Windows XP 平台工具集不支持静态分析。 不兼容 Windows 7 SDK 和运行时库的 SAL 批注。 你仍然可以对支持 Windows XP 或 Windows Server 2003 的应用运行静态分析。 临时将解决方案切换为面向默认平台工具集来进行分析,然后再切换回 Windows XP 平台工具集来生成应用。

  • 调试 DirectX 图形

    图形调试器不支持 Direct3D 9 API。 它不可用于对 Windows XP 或 Windows Server 2003 上使用 Direct3D 的应用进行调试。 但是,如果应用可基于 Direct3D 10 或 Direct3D 11 API 实现备用呈现器,则可以使用图形调试器来诊断有关问题。

  • 生成 HLSL

    默认情况下,Windows XP 工具集不编译 HLSL 源代码文件。 若要编译 HLSL 文件,请下载并安装 2010 年 6 月发行的 DirectX SDK,然后设置项目的 VC 目录以将其包含在内。 有关详细信息,请参阅 2010 年 6 月 DirectX SDK 下载页(已归档链接)的“DirectX SDK 不会使用 Visual Studio 2010 注册 Include/Library 路径”部分。

Windows XP 部署

重要

由于缺少对 SHA-256 代码签名证书的支持,适用于 Visual Studio 2015、2017、2019 和 2022 的最新 Visual C++ 可再发行程序包中不再提供对 Windows XP 的运行时库支持。 Visual Studio 2019 版本 16.7 中随附有支持 Windows XP 的最后一个可再发行程序包。 请使用文件版本以 14.27 开头的可再发行程序包。 如果使用更高版本的可再发行程序包部署 Windows XP 应用或应用更新到更高版本的可再发行程序包,应用则不会运行。

如果使用的 Visual Studio 版本高于 Visual Studio 2019 版本 16.7,可再发行文件则在 Windows XP 上不起作用。 若要获取支持 Windows XP 的可再发行文件的副本,需要具有 Visual Studio 帐户。 使用用于登录 Visual Studio 的帐户。 或者,可以在 my.visualstudio.com 中免费创建一个帐户。 可以在“下载”部分获取可再发行文件,例如适用于 Visual Studio 2019 版本 16.7 的 Visual C++ 可再发行程序包。 若要下载文件,请选择所需的平台和语言,然后选择“下载”按钮。

可以使用集中部署或本地部署来为 Windows XP 应用安装运行时库支持。 有关详细信息,请参阅演练:使用 Visual C++ 可再发行程序包部署 Visual C++ 应用程序