首页 > 解决方案 > Windows 运行时组件和 ApiInformation.IsTypePresent

问题描述

我有一个 C# Windows 运行时组件项目。它具有最低 Windows 版本 X,并针对 Windows 版本 Z。

在内部,它用于ApiInformation.IsTypePresent(NewType)检测出现在 Windows 版本 Z 中的新类型,并在可用时使用它。

现在我有一个使用上一个项目的 C# 通用 Windows 应用程序。如果我将应用程序项目设置为最小 windows X,并以 windows Z 为目标,一切都会按预期工作。

但是,如果我将应用程序项目设置为最低版本 X,并且目标版本 Y(不包含新类型):

但是,当我实际尝试使用该新类型时,在 Debug(未选中 .NET Native)下,我得到一个异常:

找不到 Windows 运行时类型“NewType”。

在 Release 下(检查了 .NET Native),显然找到了该类型,但是在调用它的方法时出现异常:

方法“NewType.Method()”未包含在编译中,但在“...”中被引用 可能缺少程序集。

我需要对组件项目做些什么,以便应用程序消费者不必针对 Windows Z 吗?该项目的全部意义在于它是应用程序消费者可以使用的兼容层。如果存在新类型,则使用它,否则使用旧类型。

标签: c#windowsuwpwindows-runtime

解决方案


推荐阅读