Windows 10 SDK

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

注意:面向 Windows 10 版本 1809(或更高版本)的 Windows 10 开发需要 Visual Studio 2017。此 SDK 将不会被以前版本的 Visual Studio 发现。

即刻体验

可以使用两种方法获取 Windows 10 SDK。通过点击下载链接,或者你也可以在 Visual Studio 15.8 安装程序的可选组件中选择此版本的 Windows 10 SDK (10.0.17763.0),以从此 Web 站点安装它。

安装此 SDK 之前:

  1. 查看本主题中的所有系统要求。
  2. 请在安装前退出 Visual Studio 2017 RTM。如果 Visual Studio 正在运行,SDK 设置可能会失败。详细了解 常见工具问题
  3. 查看本主题中的已知问题。

系统要求

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

受支持的操作系统

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

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

硬件要求

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

其他 SDK 要求

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

新增功能

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

API

要查看 Windows 10 版本 1809 引入的新 API,请参阅:Windows 10 内部版本 17763 为开发人员提供的新功能

工具

CPPWinRT

在 Windows 10 版本 1803 SDK 中,我们首次加入了 C++/WinRT 头文件和 CPPWinRT 编译器 (cppwinrt.exe)。在版本 1809 的发行中,我们进行了重大改进和更改。例如,我们改进了代码生成,并使用 Clang 和 VC++ 中更为严格的合规性模式改善了兼容性,以及进行了许多其他更新。有关详细信息,请参阅我们的 GitHub 存储库 - 我们将在这里公布新功能并跟踪你的请求和问题。

MC.EXE

我们对消息编译器(MC 或 mc.exe)的 C/C++ ETW 代码生成做了一些重要的更改:

  • 已弃用 -mof 参数。此参数指示 MC.exe 生成与 Windows XP 及更早版本兼容的 ETW 代码。在未来版本的 mc.exe 中,将删除对“-mof”参数的支持。
  • 既然不使用“-mof”参数,那么不管在命令行中指定 -km 还是 -um 参数,生成的 C/C++ 头文件现在都将与内核模式和用户模式兼容。头文件使用 _ETW_KM_ 宏自动确定编译目标为内核模式还是用户模式,并针对每种模式调用相应的 ETW API。
  • 现在, -km 与 -um 唯一的区别在于:使用 -km 生成的 EventWrite[EventName] 宏具有 Activity ID 参数,而使用 -um 生成的 EventWrite[EventName] 宏没有 Activity ID 参数。
  • EventWrite [EventName] 宏现在默认调用 EventWriteTransfer(用户模式)或 EtwWriteTransfer(内核模式)。而在以前,EventWrite [EventName] 宏默认调用 EventWrite(用户模式)或 EtwWrite(内核模式)。
  • 现在,生成的头文件支持多个自定义宏。例如,如果需要生成的宏调用 EventWriteTransfer 以外的内容,可以设置 MCGEN_EVENTWRITETRANSFER 宏。
  • 清单支持新属性。
    • 事件“name”:非本地化事件名称。
    • 事件“attributes”:事件的附加键值元数据,例如文件名、行号、组件名称、函数名称。
    • 事件“tags”:一个 28 位的值,具有用户定义的语义(每事件)。
    • 字段“tags”:一个 28 位的值,具有用户定义的语义(每字段 - 可以应用于“data”或“struct”元素)。
  • 现在,可以在清单中定义“提供程序特性”(例如,提供程序组)。如果你在清单中使用提供程序特性,则 EventRegister [ProviderName] 宏将自动注册它们。
  • 如果本地化消息文件缺少字符串,MC 现在会报告错误。(在以前,MC 会默默生成一个损坏的消息资源。)
  • MC 现在可以使用 -cp utf-8 或 -cp utf-16 参数生成 Unicode(utf-8 或 utf-16)输出。

MSIX 支持

更新了 Windows SDK 工具,以支持新的 MSIX 格式。现在,可以使用 MakeAppx 工具将应用程序与 MSIX 打包在一起,并使用 Windows 应用认证工具包验证 MSIX 包。

VM 状态转储

VmSavedStateDumpProvider.dll 公开了一组 API,以帮助从 Hyper-V 虚拟机保存状态文件中提取与转储相关的内容。你现在可以使用附带的 VmSavedStateDumpProvider.lib 访问 API。

更多详细信息,请查阅文档

Windows 调试器

Ipv6

有一个 WinDbg 预览发行版本可供下载。请参阅 Windows 调试工具博客,了解有关 KDNET IPv6 支持和文档的最新信息。

新的调试器数据模型 API

现在可通过使用 dbgmodel.h 头文件获得新的面向对象的调试器数据模型接口,以实现调试器自动化。调试器数据模型是一种可扩展的对象模型,它在新调试器的扩展(包括 JavaScript、NatVis 和 C++ 中的扩展)工作(包括它们如何使用来自调试器的信息,和它们如何生成可从调试器及其他扩展访问的信息)中能起到核心的作用。可以在调试器的 dx 表达式计算器中以及从 JavaScript 扩展或 C++ 扩展访问写入到数据模型 API 的构造。相关文档请访问:调试器数据模型 C++ 接口概述dbgmodel.h 头文件

Windows Performance Toolkit

与最新版本的 Windows Performance Recorder (WPR),使用中的自定义事件 WPR 配置文件 (WPRP) TraceMergeProperties现在按预期方式工作:如果自定义 WPRP 包含TraceMergeProperties XML 元素具有一组空的自定义的事件,这将不会再包括自定义事件(ImageIDs、WinSat,以及其他默认值)的默认设置。

如果你想让最新的 WPR 保持与先前版本相同的行为,请确保在 TraceMergeProperties 元素中包括以下属性: Base=”TraceMerge_Default”

安装最新版本的 Windows Performance Analyzer (WPA) 后,某些组件在 Windows 8 上运行时需要 Microsoft .NET Framework 4.5.2。为确保正确使用 WPA,请访问 https://www.microsoft.com/en-us/download/details.aspx?id=48130,以安装最新版本的 .NET。

示例

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

以前的 SDK 版本

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

API Light Up

当你想要使用新的 API 时,考虑编写自适应应用,以便在最广泛的 Windows 10 设备上正确运行。只要设备和 Windows 版本能够提供支持,自适应应用的新特性就能发挥功能,否则只能在被检测到的平台版本上提供可用功能。要查看实现详细信息,请参阅 使用 API 协定 (10x10) 动态检测功能。有关最新的发行说明或工具问题,请参阅 Windows 开发人员论坛