2016-08-14 40 views
0

仍在寻找一种简单地从C#/ UWP iot-core应用程序中获取当前操作系统版本(例如,操作系统版本:10.0.14393.0)的方法。指针?如果我在网上搜索,我会感到混乱的黑客。如何获取C#中已安装的操作系统版本号

iot-core的版本号非常重要,我们在这里找到了类似这样的语句“该分支支持最新的Windows IoTCore版本(目前为1607,版本号为10.0.14393.x)”并且windows 10 UWP设备现在执行自动操作系统更新。那么如何在运行时从设备(iot-core/UWP)获取此信息?

注:“Environment.OSVersion.Version”显然不适用,因此这是不是张贴How to get OS version number?

+0

我没有办法验证这一点,但你可能想调用[原生'GetVersionEx'函数](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724834( v = vs.85).aspx)通过P/Invoke。快速谷歌搜索,以确认这是否可能在UWP上做的事情导致我[一个页面,描述如何做到这一点,尽管使用不同的功能作为例子](https://mtaulty.com/2016/01/11 /窗口-10- UWP - 和 - 的PInvoke-getnativesysteminfo /)。 – cynic

+0

[跟随此](http://stackoverflow.com/questions/31783604/windows-10-get-devicefamilyversion) – tao

+0

谢谢。这(http://stackoverflow.com/a/31895625/1480500)和(http://stackoverflow.com/q/36462824/1480500)似乎提供了所需的结果,但鉴于它是一个分析API,我猜微软真的已经决定我们不需要知道这个(因此,下面标记的答案)!? – GGleGrand

回答

2

根据你的描述重复的,我想你实际上需要的是ApiInformation class。通过此类,您可以检测指定的成员,类型或API合约是否存在,以便您可以安全地在各种设备上进行API调用。所以我们不需要获取当前的操作系统版本来查看设备是否支持某些功能。这里的关键是检测功能,而不是操作系统或设备

自适应应用程序背后的基本思想是,您的应用程序检查它需要的功能(或功能),并且只在可用时使用它。传统的做法是检查操作系统版本,然后使用这些API。在Windows 10中,您的应用程序可以在运行时检查当前操作系统是否支持类,方法,属性,事件或API合约。如果是这样,那么应用程序可以调用适当的API。

欲了解更多信息,请参阅Dynamically detecting features with API contracts (10 by 10)也是这个问题,Target code for a specific version of Windows 10, like Build 10586

+0

更接近也许是最好的方法。但是,我需要操作系统版本来测试我在标准平台上测试的内容,然后对多个iot核心设备进行“空中更新”。我需要确保设备处于正确的基线。否则,我的应用程序必须比其他任何应用程序更多的AI应用程序:-) – GGleGrand

相关问题