Windows 10 SDK

适用于 Windows 10 版本 2004 的 Windows 10 SDK (10.0.19041.0) 可提供用于生成 Windows 10 应用的最新标头、库、元数据和工具。

使用此 SDK 生成用于 Windows 10 版本 20H2 及旧版 Windows 的通用 Windows 平台 (UWP) 应用和 Win32 应用程序。

即刻体验

可以通过两种方式下载 Windows 10 SDK:选择本页上的下载链接,或在Visual Studio 2019 安装程序的可选组件中选择“Windows 10 SDK (10.0.19041.0)”。

安装此 SDK 之前:

  1. 查看下方的所有系统要求。
  2. 请在安装前退出 Visual Studio 2019。
  3. 查看下方的已知问题。

系统要求

Windows SDK 具有以下最低系统要求:

受支持的操作系统

  • 通用 Windows 平台 (UWP) 应用开发
    • Windows 10 版本 1507 或更高版本:家庭版、专业版、教育版和企业版(LTSB 和 S 不受支持)
    • Windows Server 2019、Windows Server 2016 和 Windows Server 2012 R2(仅命令行)
  • Win32 应用开发
    • Windows 10 版本 1507 或更高版本
    • Windows Server 2019、Windows Server 2016 和 Windows Server 2012 R2(仅命令行)
    • Windows 8.1
    • Windows 7 SP1

(并非所有工具都在较早的操作系统上受支持)

硬件要求

  • 1.6 GHz 或更快的处理器
  • 1 GB 的 RAM
  • 4 GB 的可用硬盘空间

其他 SDK 要求

需要 KB2999226 才能在 Windows 8.1 和更早的操作系统上进行安装。若要通过 Windows 更新安装,请确保在安装 Windows SDK 之前从 Microsoft 更新安装推荐的最新更新和修补程序。

最近更新

适用于 Windows 10 版本 2004 的 Windows 10 SDK 提供了用于开发 Windows 应用程序的令人振奋的新 API 和工具更新。详细了解 Windows 10 版本 2004 中的新功能

API

要查看 Windows 10 版本 2004 中引入的新 API,请参阅:面向开发人员的 Windows 10 版本 19041 中的新增功能

删除了 api-ms-win-net-isolation-l1-1-0.lib

在此版本中,我们从 Windows SDK 删除了 api-ms-win-net-isolation-l1-1-0.lib。链接到 api-ms-win-net-isolation-l1-1-0.lib 的应用可改为链接到 OneCoreUAP.lib。

删除了 irprops.lib

在此版本中,我们从 Windows SDK 删除了 irprops.lib。链接到 irprops.lib 的应用可直接改为链接到 bthprops.lib。

删除了 wuapicommon.h 和 wuapicommon.idl

在此版本中,我们将 ENUM tagServerSelection 从 wuapicommon.h 移动到了 wupai.h 并删除了标头。如果你想使用 ENUM tagServerSelection,就需要包含 wuapi.h 或 wuapi.idl。

Windows 10 WinRT API 包

使用 Windows 10 WinRT API 包,可以向 .NET Framework 4.5+ 和 .NET Core 3.0+ 库和应用添加最新 Windows 运行时 API 支持。若要访问 Windows 10 WinRT API 包,请参阅 Microsoft.Windows.SDK.Contracts nuget 包

通用 C 运行时 (UCRT)

printf 系列的函数现将在打印可精确表示的浮点数时遵循 IEEE 754 舍入规则,并将采用通过调用 fesetround 请求的舍入模式。在与 legacy_stdio_float_rounding.obj 链接时,可使用旧行为。

工具

Windows 应用认证工具包

在此版本的 Windows SDK 中,应用认证工具包和 Windows Store 中受支持的 API 列表中添加了几个新的 API。如果受支持的列表中有在 Visual Studio 中显示为灰色或已禁用的 API,可以对源文件进行少量更改,以便访问它们。有关更多详细信息,请参阅此已知问题

除了添加 API 外,还对测试进行了以下更改:

更新的测试:

  • ValidateContentUriRules 将变为仅供参考。测试失败将表现为警告。

删除的测试

  • Web 应用的 WebView WinRT 访问测试
  • UWP 应用的 PackageSizeCheck 测试
  • 桌面桥应用的 SupportedApi 测试
  • BinScope 中的 UWP 应用 AppContainerCheck 测试
  • 所有应用类型的 ServiceWorker 检查

新增测试

  • 高 DPI 测试。针对桌面桥应用的新测试可检查应用是否使用 DPI 感知功能,如果未指定,则发出警告。此测试将鼓励你使应用实现监视器级别的 DPI 感知。有关 DPI 的详细信息,请参阅 Windows上的高 DPI 桌面应用程序开发

消息编译器 (mc.exe)

更新包括:

  • 现可检测 .mc 文件中的 Unicode 字节顺序标记 (BOM)。如果 .mc 以 UTF-8 BOM 开头,则该文件将作为 UTF-8 文件读取。否则,如果 .mc 以 UTF-16LE BOM 开头,则该文件将作为 UTF-16LE 文件读取。如果指定了 -u 参数,则它将作为 UTF-16LE 文件读取。否则,将使用当前代码页 (CP_ACP) 读取。
  • 现在可以避免 MC 生成的 C/C++ ETW 帮助程序中由配置宏冲突引起的单一定义规则 (ODR) 问题(例如,当具有 MCGEN_EVENTWRITETRANSFER 定义冲突的两个 .cpp 文件链接到同一个二进制文件时,MC 生成的 ETW 帮助程序现在将遵循每个 .cpp 文件中 MCGEN_EVENTWRITETRANSFER 的定义,而不是随意选取其中一个)。

Windows 跟踪预处理器 (tracewpp.exe)

更新包括:

  • 现在支持 Unicode 输入(.ini、.tpl 和源代码)文件。以 UTF-8 或 UTF-16 字节顺序标记 (BOM) 开头的输入文件将作为 Unicode 读取。将使用当前代码页 (CP_ACP) 读取不以 BOM 开头的输入文件。为实现后向兼容,如果指定了 -UnicodeIgnore 命令行参数,以 UTF-16 BOM 开头的文件将被视作空文件。
  • 现在支持 Unicode 输出 (.tmh) 文件。默认情况下,输出文件将使用当前代码页 (CP_ACP) 进行编码。使用命令行参数 -cp:UTF-8 or -cp:UTF-16 生成 Unicode 输出文件。
  • 行为更改 :tracewpp 现在会将所有输入文本转换为 Unicode,以 Unicode 格式进行处理,并将输出文本转换为指定的输出编码。早期版本的 tracewpp 会避免 Unicode 转换,并在执行文本处理时假设单字节字符集。在输入文件与当前代码页不符时,这可能导致行为更改。如果出现这种问题,请考虑将输入文件转换为 UTF-8 (使用 BOM),并/或使用 -cp:UTF-8 命令行参数避免编码多义性。

TraceLoggingProvider.h

更新包括:

  • 现在可以避免由配置宏冲突引起的单一定义规则 (ODR) 问题(例如,当具有 TLG_EVENT_WRITE_TRANSFER 定义冲突的两个 .cpp 文件链接到同一个二进制文件时,TraceLoggingProvider.h 帮助程序现在将遵循每个 .cpp 文件中 TLG_EVENT_WRITE_TRANSFER 的定义,而不是随意选取其中一个)。
  • 在 C++ 代码中,TraceLoggingWrite 宏已更新,让使用可变参数模板的相似事件可以更好地共享代码。

通过 Device Guard 签名对应用进行签名

现在,你可以更轻松地对应用进行签名。Device Guard 签名是一项 Device Guard 功能,可在适用于企业和教育的 Microsoft Store 中提供。企业可以通过签名保证每个应用都来自受信任的来源。我们的目标是让你可以更轻松地对 .MSIX 包进行签名。请参阅有关 Device Guard 签名的文档

示例

现在可通过 GitHub 获取 Windows 10 应用示例。你可在 GitHub 上浏览代码、从 Git 克隆个人储存库副本,或者下载包含所有示例的压缩文档。我们乐于接收反馈,因此如果你有问题或疑问,你可以随时在存储库中提出问题。这些示例专用于在支持通用 Windows 平台 (UWP) 的桌面、移动设备和将来设备上运行。

以前的 SDK 版本

可在存档页面上找到以前发布的 SDK 和模拟器(包括更新详细信息)。

API Light Up

当你想要使用新的 API 时,考虑编写自适应应用,以便在最广泛的 Windows 10 设备上正确运行。只要设备和 Windows 版本能够提供支持,自适应应用的新特性就能发挥功能,否则只能在被检测到的平台版本上提供可用功能。有关实现详细信息,请参阅版本自适应代码一文。

反馈和已知问题

若要进行反馈,或要了解关于已知问题的更新,请参阅开发人员论坛

若要提交新的开发人员功能请求,请在“反馈中心”应用中“开发人员平台/API”类别下提交。

更多资源

下载和工具

获取最新版本的 Visual Studio 和 Windows 10 开发工具。

了解详细信息

SDK 存档

查找 Windows SDK 和其他工具的之前版本。

查看档案

Windows 博客

请订阅我们的博客,实时跟进最新 SDK 外部测试版。

获取 SDK 外部测试版新闻

Windows 生命周期情况说明书

了解 Windows 发布更新和支持结束的关键日期。

查看情况说明书