我有一个C#Windows运行时组件项目。它的最低Windows版本为X,并以Windows版本Z为目标。
在内部,它使用ApiInformation.IsTypePresent(NewType)
来检测Windows版本Z中出现的新类型,并在可用时使用它。
现在,我有一个使用先前项目的C#Universal Windows应用程序。如果我将应用程序项目的最小窗口数设置为X,将目标窗口数设置为Z,则一切正常。
但是,如果我将应用程序项目设置为最低版本X和目标版本Y(不包含新类型):
ApiInformation.IsTypePresent(NewType)
返回true
很好。但是,当我实际尝试使用该新类型时,在Debug(未选中.NET Native)下,我会收到以下异常:
找不到Windows运行时类型'NewType'。
在发行版下(选中了.NET Native),显然可以找到该类型,但是在对其调用方法时出现异常:
方法'NewType.Method()'未包含在编译中,但在'...'中引用。可能缺少程序集。
我是否需要对组件项目做一些事情,以便应用程序使用者不必针对Windows Z?该项目的重点是它是应用程序使用者可以使用的兼容性层。如果存在新类型,将使用它,否则将使用旧类型。