Applications de bureau gérées et Windows Runtime

Applications de bureau gérées et Windows Runtime

[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

Visual Studio a largement facilité l’écriture des applications du Windows Store gérées qui utilisent les API Windows Runtime. Toutefois, si vous écrivez une application de bureau gérée, vous devrez effectuer quelques tâches manuellement afin d’utiliser les API Windows Runtime. Ce livre blanc fournit des informations sur les tâches que vous devez effectuer pour que votre application de bureau puisse utiliser les API Windows Runtime. Il est supposé que le lecteur est familiarisé avec l’écriture des applications de bureau gérées. Ces informations s’appliquent à Windows 8.

Introduction

Les améliorations apportées à Visual Studio simplifient nettement le développement des applications du Windows Store. Cela se traduit notamment par la capacité à utiliser facilement les nouvelles API Windows Runtime lorsque vous choisissez de créer l’un des nouveaux types de projet « Windows Store ».

Cependant, si vous créez une application de bureau gérée qui utilise les nouvelles API Windows Runtime, il vous reste à accomplir certaines tâches manuellement. Dans ce livre blanc, j’énumère certains conseils pour vous aider.

Ciblage de Windows 8

Une fois que vous avez créé votre application de bureau gérée, vous devez effectuer un réglage manuel dans votre fichier projet pour indiquer à Visual Studio que vous voulez cibler Windows 8 :

<PropertyGroup>
  <TargetPlatformVersion>8.0</TargetPlatformVersion>
</PropertyGroup>

Cette étape est nécessaire afin d’ajouter des références aux fichiers de métadonnées Windows.

Pour obtenir des instructions pas à pas, consultez Procédure : ajout ou suppression de références à l’aide du Gestionnaire de références, puis faites défiler la page jusqu’au titre Onglet Windows -> Sous-groupe principal.

Utilisation des types Windows Runtime standard

À titre de rappel, la documentation de MSDN Library identifie chaque API Windows comme étant applicable aux applications de bureau, aux applications du Windows Store, ou aux deux. Par conséquent, à partir de vos applications de bureau, assurez-vous que vous utilisez uniquement des API assorties de la mention suivante :

  • Applies to: applications de bureau uniquement

ou de :

  • Applies to: applications de bureau | applications du Windows Store

En outre, chaque API doit disposer de son propre jeu de mises en garde ou dépendances documentées (par exemple, certaines API fonctionnent uniquement lorsqu’une infrastructure d’interface utilisateur est créée). Veillez à lire la documentation de chaque classe Windows Runtime que vous comptez utiliser, afin de vérifier qu’elle fonctionnera avec votre application de bureau.

Cela étant dit, votre application de bureau n’est guère en mesure d’utiliser des éléments de Windows Runtime avant que vous n’ayez préparé votre projet avec une référence essentielle. Windows Runtime définit certaines classes et interfaces standard dans System.Runtime, comme IEnumerable, qui sont utilisées dans toutes les bibliothèques Windows Runtime. Par défaut, votre application de bureau gérée ne sera pas capable de trouver ces types, et c’est pourquoi vous devez faire référence manuellement à System.Runtime avant d’utiliser de manière significative les classes Windows Runtime. Pour créer cette référence manuelle :

1. Accédez à votre projet d’application de bureau gérée dans l’Explorateur de solutions.
2. Cliquez avec le bouton droit sur le nœud Références, puis cliquez sur Ajouter une référence.
3. Cliquez sur l’onglet Parcourir.
4. Cliquez sur Parcourir….
5. Accédez à la façade System.Runtime.dll. Vous pouvez généralement y parvenir en utilisant un chemin similaire à celui-ci : %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.dll

Vous pouvez désormais ajouter des références à d’autres fichiers de métadonnées Windows et utiliser des API Windows Runtime applicables à votre application de bureau.

Utilisation d’API COM Windows

Windows 8 contient quelques nouvelles API utiles disponibles via COM. Nous nous éloignons un peu du sujet, mais ces nouvelles API COM sont souvent utilisées en association avec Windows Runtime pour fonctionner avec certaines des nouvelles fonctionnalités Windows dans le contexte du modèle d’application du Windows Store. À titre d’exemple, si vous écrivez une application de bureau gérée qui énumère les packages des applications du Windows Store installées, vous pourriez utiliser la classe PackageManager de Windows Runtime pour détecter ces applications du Windows Store installées, en association avec l’interface COM IAppxManifestReader afin de récupérer des informations les concernant à partir de leur manifeste.

Pour utiliser ces interfaces COM, vous devrez générer une bibliothèque de types, puis un assembly managé contenant les définitions de ces interfaces COM :

1. Ouvrez une invite de commandes de développeur pour Visual Studio.
2. Exécutez une commande semblable à celle-ci pour générer la bibliothèque de types : midl %ProgramFiles(x86)%\Windows Kits\8.0\Include\winrt\<IDL Filename> /out <path>\<TLB Filename>
3. Exécutez une commande sur le modèle de celle-ci pour convertir la bibliothèque de types que vous venez de générer en un assembly .NET : tlbimp <path>\<TLB Filename> /namespace:<Namespace> /out:<path>\<Assembly filename>
4. À présent, dans Visual Studio, ajoutez une référence à l’assembly que vous venez de créer :
a. Accédez à votre projet d’application de bureau gérée dans l’Explorateur de solutions.
b. Cliquez avec le bouton droit sur le nœud Références, puis cliquez sur Ajouter une référence.
c. Cliquez sur l’onglet Parcourir.
d. Cliquez sur Parcourir….

Résolution des problèmes

Voici quelques étapes de résolution des problèmes à connaître.

  • Dans certains cas, vous pouvez éviter de générer l’assembly .NET à l’étape 3. Il vous suffit d’ajouter directement une référence à la bibliothèque de types que vous avez créée à l’étape 2 dans la boîte de dialogue Ajouter une référence de Visual Studio. Toutefois, le résultat n’est pas toujours probant et Visual Studio peut échouer lorsque vous essayez de faire référence à certaines bibliothèques de types que vous créez par ce biais. Dans ces cas-là, vous pouvez résoudre le problème en générant un assembly .NET et en y faisant référence comme dans l’étape 3 et 4.
  • Lorsque vous ajoutez la référence à l’assembly .NET au cours de l’étape 4, Visual Studio affecte par défaut à Incorporer les types d’interopérabilité la valeur True. Vous pouvez afficher cette option en cliquant avec le bouton droit sur l’assembly auquel vous venez de faire référence sous le dossier Références dans l’Explorateur de solutions. Ce réglage peut générer des erreurs lors de la compilation de votre projet, telles que l’erreur CS1752 : impossible d’incorporer le type d’interopérabilité '<nom du type>'. Utilisez plutôt l’interface applicable.

    Il s’agit d’un problème relativement courant qui peut être facilement résolu la plupart du temps. Pour plus d’informations, voir Impossible d’incorporer le type d’interopérabilité.

Rubriques associées

Procédure : ajout ou suppression de références à l’aide du Gestionnaire de références
Impossible d’incorporer le type d’interopérabilité

 

 

Afficher:
© 2016 Microsoft