Windows运行时组件和ApiInformation.IsTypePresent

时间:2018-07-19 19:10:31

标签: c# windows uwp windows-runtime

我有一个C#Windows运行时组件项目。它的最低Windows版本为X,并以Windows版本Z为目标。

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

现在,我有一个使用先前项目的C#Universal Windows应用程序。如果我将应用程序项目的最小窗口数设置为X,将目标窗口数设置为Z,则一切正常。

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

  • 该应用会编译。
  • 在Windows版本Z的计算机上运行,​​ApiInformation.IsTypePresent(NewType)返回true很好。

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

  

找不到Windows运行时类型'NewType'。

在发行版下(选中了.NET Native),显然可以找到该类型,但是在对其调用方法时出现异常:

  

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

我是否需要对组件项目做一些事情,以便应用程序使用者不必针对Windows Z?该项目的重点是它是应用程序使用者可以使用的兼容性层。如果存在新类型,将使用它,否则将使用旧类型。

0 个答案:

没有答案