UWP 桌面扩展是运行时框架还是 SDK?

Are UWP Desktop Extensions a runtime framework or an SDK?

根据明显来自 Microsoft in this answer 的人的回复,它似乎是一个 SDK,他说我可以使用 16299 桌面扩展版本来定位 14393 机器。

另一方面,在 Visual Studio 中,它是作为参考添加的,这似乎表明它是目标计算机上存在的运行时可执行文件,因此我需要将目标设为 16299 或 14393,但不是两者。

我认为它 更有可能是 SDK,因为如果不是,我们将无法通过一个应用程序针对 Windows 10 的多个版本(除非 OS 的每个版本也包含较旧的 "runtimes")。但我还没有找到任何明确说明这一点的消息来源。

所以:我需要在目标机器上定位版本,还是可以定位最新版本?

它是通用 Windows 平台 SDK 的扩展 SDK。对于您的桌面扩展 SDK,您希望选择与您用于 UWP SDK 参考的相同版本,例如如果您使用 Windows SDK 16299,请使用桌面扩展 SDK 16299。添加这样的引用会添加对 .winmd 文件的引用,其中包含 API 界面的元数据(这些不是运行时)。您的计算机上只有一个 UWP 运行时(OS 安装附带的那个)。

您仍然可以使用 16299 SDK 构建面向 14393 的应用。请参阅本主题了解版本控制注意事项,以及 minversion、targetversion 和版本自适应代码的概念: https://docs.microsoft.com/en-us/windows/uwp/updates-and-versions/choose-a-uwp-version