2016-08-14 8 views
0

Suchen Sie noch nach einer Möglichkeit, die aktuelle Betriebssystemversion (z. B. OS Version: 10.0.14393.0) von einer C#/UWP iot-core-App zu erhalten. Zeiger? Wenn ich im Internet suche, bekomme ich verwirrende Hacks.So erhalten Sie die Versionsnummer des installierten Betriebssystems in C#

Die Versionsnummer für iot-core ist sehr wichtig, wir finden überall ähnliche Anweisungen "Dieser Zweig unterstützt die neuesten verfügbaren IoTCore-Versionen (derzeit 1607, Versionsnummer 10.0.14393.x)" Und Windows 10 UWP-Geräte führen jetzt automatische Betriebssystem-Updates durch. Wie bekomme ich diese Informationen vom Gerät (iot-core/UWP) zur Laufzeit?

Hinweis: „Environment.OSVersion.Version“ ist offenbar nicht zur Verfügung, so das kein Duplikat ist How to get OS version number?

+0

Ich habe keine Möglichkeit, dies zu überprüfen, aber Sie können die [native 'GetVersionEx-Funktion] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms724834 (v = vs.85) .aspx) über P/Invoke. Eine schnelle Google-Suche, um zu bestätigen, ob dies auf UWP möglich ist, führte mich zu [einer Seite, die genau das beschreibt, wenngleich eine andere Funktion als Beispiel verwendet wird] (https://mtanbuly.com/2016/01/11/windows-10-uwp-und-pinvoke-getnativesysteminfo /). – cynic

+0

[folgen Sie diesem] (http://stackoverflow.com/questions/31783604/windows-10-get-devicefamilyversion) – tao

+0

Danke. Dies (http://stackoverflow.com/a/31895625/1480500) und (http://stackoverflow.com/q/36462824/1480500) scheinen das gewünschte Ergebnis zu liefern, aber angesichts der Tatsache, dass es sich um eine Analytics-API handelt, schätze ich Microsoft hat wirklich entschieden, dass wir das nicht wissen müssen (also die Antwort unten) !? – GGleGrand

Antwort

2

Nach Ihrer Beschreibung zu schreiben, denke ich, was Sie wirklich brauchen, ist ApiInformation class. Mit dieser Klasse können Sie feststellen, ob ein bestimmtes Mitglied, ein bestimmter Typ oder ein bestimmter API-Vertrag vorhanden ist, damit Sie sicher API-Aufrufe über eine Vielzahl von Geräten durchführen können. Daher müssen wir nicht die aktuelle Betriebssystemversion abrufen, um festzustellen, ob etwas auf dem Gerät unterstützt wird. Der entscheidende Punkt hier ist Detect Features, nicht OS oder Geräte.

Die Grundidee hinter adaptiven Apps besteht darin, dass Ihre App nach der benötigten Funktionalität (oder Funktion) sucht und diese nur verwendet, wenn sie verfügbar ist. Die herkömmliche Vorgehensweise besteht darin, die Betriebssystemversion zu überprüfen und dann diese API zu verwenden. Mit Windows 10 kann Ihre App zur Laufzeit prüfen, ob ein Klassen-, Methoden-, Property-, Event- oder API-Vertrag vom aktuellen Betriebssystem unterstützt wird. Wenn dies der Fall ist, kann die App die entsprechende API aufrufen.

Weitere Informationen finden Sie in Dynamically detecting features with API contracts (10 by 10) und auch diese Frage, Target code for a specific version of Windows 10, like Build 10586.

+0

Näher und vielleicht der beste Ansatz. Allerdings benötige ich die OS-Version für Dinge, die ich auf einer Standard-Plattform teste und dann "over-air-update" auf eine Reihe von iot-core-Geräten. Ich muss sicherstellen, dass die Geräte auf der richtigen Basis sind. Ansonsten muss meine App eher eine KI-App sein als alles andere :-) – GGleGrand

Verwandte Themen