10.0.19041和10.0.22000 SDK之间的区别

Dev*_*Dev 2 windows sdk visual-studio-2022

在了解 10.0.19041.0 和 10.0.22000.0 SDK 之间的差异时,我遇到了 https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/这个页面。经过研究,我了解到 10.0.22000.0 主要用于 Windows 11 应用程序。

如果我们选择 10.0.019041 作为包并构建应用程序,它不会在 Windows 11 上运行。

如果我们希望我们的应用程序在 Windows 11 上运行,我们需要选择 10.0.22000.0 而不是 10.0.19041.0。

如果我的理解有误,请指正。谢谢您的帮助!

Tho*_*ler 9

TLDR:不,你的理解是错误的。您可以使用您想要的任何版本,并且您的应用程序将在 Windows 10 和 Windows 11 上运行。

详细内容长:

  1. 确实,10.0.19041 SDK 适用于 Windows 10。
  2. 这也是事实,10.0.22000 SDK 适用于 Windows 11。

我们从用户的角度来看一下:

当您下载软件时,您需要多久选择一次正确的操作系统?不经常。所以,不知何故,SDK版本似乎并不是很重要。

让我们从微软的角度来看一下:

Microsoft 是否希望所有开发人员在发布 Windows 11 后都要求重建其 Wi​​ndows 10 程序?当然不会,因为这意味着随着Windows 11的发布,将不再有任何一个应用程序可以在Windows 11上运行。微软甚至无法对Adobe Reader等数百万用户的软件进行内部测试。

我们从技术角度来看一下:

Windows SDK提供了Windows的API定义。Windows API 非常古老。由于 Microsoft 不希望开发人员进行重建,更糟糕的是,不让他们修复重大更改,因此 Microsoft 使该 API 保持了极其稳定的状态。他们不会改变 API,只会添加新的 API 方法。

您使用的Windows API已经存在于 Windows 10 中并且仍然存在于 Windows 11 中的可能性几乎是 100%。因此,为 Windows 10 编译的应用程序仍可在 Windows 11 上运行。

同样,如果您使用 Windows 11 API 进行编译并且不使用最新的精美 API,您的应用程序仍将在 Windows 10 上运行。

例子

假设您开发了一个管理字体的应用程序。您已经使用过接口IDWriteFontSetIDWriteFontSet2IDWriteFontSet3。在 Windows 11 中,Microsoft 添加了IDWriteFontSet4. 只要您不使用该接口并坚持使用前面的 3 个接口,您的应用程序就可以正常运行。一旦开始使用IDWriteFontSet4,您的应用程序可能会在 Windows 10 上崩溃(可能仅当用户调用该功能时,不确定)。