2016-08-14 25 views
0

C#/ UWP iot-coreアプリケーションから現在のOSバージョン(OSバージョン:10.0.14393.0など)を取得する方法を探しています。ポインタ?私がウェブを検索すると、混乱するハックの混乱が起こります。C#でインストールされたOSバージョン番号を取得する方法

iot-coreのバージョン番号は非常に重要なので、このようなステートメントは「このブランチは最新のIoTCoreリリース(現在は1607、バージョン番号10.0.14393.x)をサポートしています」およびWindows 10 UWPデバイスは自動OSアップデートを行うようになりました。では、この情報を実行時にデバイス(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で可能かどうかを確認するためのGoogleの迅速な検索では、[別の機能を例として使用していますが、これを正確に行う方法について説明したページ]が表示されました(https://mtaulty.com/2016/01/11/windows-10-uwp-and-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であると仮定すると、Microsoft本当に私たちはこれを知る必要はないと決めました(したがって、下記に答えてください)! – GGleGrand

答えて

2

を投稿する重複しない明らかにできないですが、私はあなたが実際にApiInformation classで必要なものだと思います。このクラスを使用すると、指定したメンバー、型、またはAPI契約が存在するかどうかを検出できるため、さまざまなデバイス間でAPI呼び出しを安全に行うことができます。したがって、デバイスで何かがサポートされているかどうかを確認するために、現在のOSバージョンを取得する必要はありません。ここで重要な点は、OSまたはデバイスではなく、機能を検出することです

適応型アプリケーションの基本的な考え方は、アプリが必要な機能(または機能)をチェックし、利用可能な場合にのみ使用することです。これを行う伝統的な方法は、OSのバージョンを確認し、それらの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

もっと接近し、おそらく最善のアプローチ。しかし、私は、標準プラットフォームでテストしたものにはOSバージョンが必要であり、多くのiot-coreデバイスには "オーバーエアアップデート"が必要です。私はデバイスが適切なベースラインにあることを保証する必要があります。それ以外の場合は、私のアプリは他のものよりもAIアプリ以上のものでなければなりません:-) – GGleGrand

関連する問題