2016-08-14 38 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

相關問題