Obtenez de l'OS-Version WinRT Métro Application C#
Je suis de la programmation d'une Application de Style Metro avec C# et Visual Studio 11 Beta.
Maintenant, je veux obtenir le système d'exploitation-Version de l'OS. Comment puis-je l'obtenir?
J'ai trouvé comment le faire dans des Applications "normales".
De là vous prenez l'Environnement de la Classe avec l'attribut OSVersion mais dans .NET de Base il n'y a pas cet attribut
- - Je l'envoyer à un WebService et là, j'ai trier les Demandes par OS-Version.
- Je ne vois rien d'évident dans la documentation de l'API, de sorte que vous pourriez, peut-être, coder en dur dans votre Métro de version de l'application pour commencer?
- Il est intentionnellement aucun moyen d'en obtenir la version de l'OS. Historiquement, les applications ont mal utilisé la version de l'OS au lieu de s'appuyer sur les différentes formes de la fonction de détection qui ont causé d'importants appcompat questions pour l'équipe de développement. Pour Windows 8, l'équipe de développement a décidé d'éviter le problème entièrement en ne fournissant pas de GetVersion API.
- pouvez-vous montrer un exemple de la façon de faire de la détection de fonctionnalité pour c#/xaml apps? allons-nous avoir à utiliser la réflexion?
- Actuellement, il n'est pas de la langue de projection de soutien pour la détection de fonctionnalité en C#/Xaml, car il n'existe qu'une seule version (et donc de toutes les fonctionnalités sont disponibles). Le WinRT sur la plateforme d'appui pour la gestion des versions et la détection de fonctionnalité, mais la langue des projections n'ont pas mis en œuvre (car il n'y a aucun moyen de vérifier leur mise en œuvre). Je ne peux même pas spéculer sur la façon dont la fonctionnalité de détection serait mis en œuvre parce que je ne suis pas impliqué dans la conception de ces caractéristiques.
- Winrt plate-forme de gestion des versions fonctionne de la manière suivante: Chaque winrt type a la version dans laquelle il a été introduit. Sauf pour les classes d'exécution et les énumérations, winrt types sont immuables. Classes d'exécution et les énumérations peuvent être additivement version, les nouvelles entrées indiquer la version dans laquelle ils ont été introduits. Langue projections pouvez utiliser ces informations pour déterminer les Api et les valeurs qui sont disponibles sur version de l'OS. La manière de le faire est à la langue de projection. Martyn parler ici: channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/... a plus d'informations sur la gestion des versions.
InformationsquelleAutor SwissPrime | 2012-04-12
Vous devez vous connecter pour publier un commentaire.
Pour les nouvelles applications, vous devriez vérifier pour des fonctionnalités spécifiques, pas de version de l'OS.
Aussi loin que je peux voir, il n'y a pas de raison de vérifier la version de l'OS que le métro applications ne sont disponibles que pour win 8.
Edit: de Stocker des applications sont disponibles sur de multiples versions de Windows maintenant, mais il est toujours recommandé d'effectuer un test de fonctionnalités au lieu de versions de système d'exploitation. Minimum de la version du système d'exploitation est définie comme l'accumulation de la cible d'un projet lorsque vous le créez.
Edit #2: Si vous êtes intéressés par le suivi des versions de système d'exploitation dans votre application d'installation de base, vous pouvez intégrer l'Application aperçu de votre projet de départ avec des applications visant à Windows 8.1. Voici un tutoriel pour débuter avec elle:
http://azure.microsoft.com/en-us/documentation/articles/app-insights-windows-get-started/
Vous pouvez obtenir le numéro de version de l'OS avec un certain risque qu'il pourrait ne pas être correcte, en utilisant les appareils API pour obtenir la version du pilote de numéros pour un faible niveau les composants du système.
Accepté la réponse est correcte dans le sens que vous ne devriez pas tie de la fonctionnalité le numéro de version, mais il y a des raisons valables d'utiliser, tels que l'analyse, il est utile de savoir quand un grand nombre de vos utilisateurs sont déjà sur une nouvelle version et que vous devriez considérer une application de mise à jour pour en profiter.
https://github.com/AttackPattern/CSharpAnalytics/blob/master/Source/CSharpAnalytics/SystemInfo/WindowsStoreSystemInfo.cs a plus d'informations et des exemples de code (divulgation, j'ai écrit ce code)
Remarque: Le code a été mis à jour et maintenant poignées custom/plusieurs HALs etc.
En fait, il existe une solution simple pour obtenir une Version de Windows chaîne dans le User Agent de la forme (Windows NT 6.x).
De gens qui se demandent pourquoi on peut vouloir le faire : rassembler des statistiques sur nos utilisateurs de la Version de Windows et de faire connaître les décisions sur la rétro-compatibilité.
Sur la base des réponses des autres posters - il n'y a pas d'API pour tester la version de l'OS, mais il y aura des Api de requête pour la version d'un type spécifique. Cela signifie que vous pourriez ne pas être en mesure de dire la version de futures versions de Windows avec votre code actuel, mais si vous gardez à jour votre code, vous pouvez déterminer la version du système d'exploitation basé sur la présence d'un type spécifique est disponible. Pour l'instant, on pourrait supposer à l'aide de la version actuelle de Windows 8.
Aussi, je n'ai pas essayé, mais il est possible que vous pourriez obtenir en faisant l'interopérabilité avec du JavaScript et de l'analyse "navigator.appVersion".