Partage via


Architecture de déploiement et vue d’ensemble des applications dépendantes de l’infrastructure

Cet article explique une architecture de haut niveau du déploiement du Kit de développement logiciel (SDK) d’application Windows. Les concepts ci-dessous s’appliquent principalement aux applications dépendantes du SDK d’application Windows. Une application dépendante de l’infrastructure dépend du runtime du Kit de développement logiciel (SDK) d’application Windows présent sur l’ordinateur cible.

Il existe deux options principales pour distribuer une application dépendante du framework :

Méthode de déploiement d’application Spécifications
Empaqueté - Doit déclarer une dépendance sur le package Framework dans le manifeste du package.
- L’API de déploiement est requise pour les applications distribuées du Microsoft Store et recommandées pour les applications distribuées non-Store afin de s’assurer que les dépendances d’exécution sont installées.
Packagée avec un emplacement externe ou non packagée - Doit distribuer le runtime à l’aide du programme d’installation ou en installant directement les packages MSIX requis.
- Configuration requise pour le runtime supplémentaire : doit initialiser l’accès au runtime du Kit de développement logiciel (SDK) d’application Windows via l’API Bootstrap.

Pour plus d’informations sur ces exigences, consultez les articles suivants :

Termes clés

Les sections suivantes définissent les termes clés du déploiement du Kit de développement logiciel (SDK) d’application Windows et des détails supplémentaires sur certains de ces packages.

Terme Définition
Runtime du Kit de développement logiciel (SDK) d’application Windows Packages MSIX requis par une application pour utiliser le Kit de développement logiciel (SDK) d’application Windows. Ces packages incluent : Framework, Main, Singleton et DDLM. Selon les fonctionnalités utilisées et la méthode de déploiement de votre application, vous aurez besoin d’un certain ensemble de ces packages sur l’ordinateur cible.
Package d’infrastructure Contient des fichiers binaires utilisés au moment de l’exécution par les applications (la plupart des fonctionnalités du Kit de développement logiciel (SDK) d’application Windows). L’infrastructure inclut un composant de programme d’amorçage qui permet aux applications d’installer automatiquement la dernière version du Kit de développement logiciel (SDK) d’application Windows, qui sera mise à jour à une cadence de publication régulière.
Package principal Package qui contient des tâches en arrière-plan pour suivre les dépendances dynamiques et active les mises à jour automatiques du package Framework à partir du Microsoft Store.
Package Singleton Contient des tâches en arrière-plan, des services, des extensions d’application et d’autres composants non inclus dans le package Framework, tels que les notifications Push. Il s’agit généralement d’un processus de longue durée unique réparti entre les applications.
Package DDLM (Dynamic Dependency Lifetime Manager) Empêche le système d’exploitation d’effectuer des mises à jour de maintenance des packages MSIX pendant qu’un package avec un emplacement externe ou une application non empaquetée est en cours d’utilisation.
Programme d’amorçage Binaire local d’application utilisé par empaqueté avec un emplacement externe et des applications non empaquetées pour localiser et charger la meilleure version du Kit de développement logiciel (SDK) d’application Windows en fonction des besoins de l’application.
Approvisionnement Le processus d’installation et d’inscription de packages (y compris les fichiers et les clés de Registre) à l’échelle du système pour éliminer la nécessité d’une installation répétée par les autres utilisateurs. Elle peut être effectuée dans le cadre du système d’exploitation ou effectuée lors de l’installation d’une application.
Programme d’installation Fait référence au programme d’installation .exe qui déploie les packages Framework, Main, Singleton et DDLM.
MSIX Technologie d’installation moderne qui permet aux utilisateurs d’installer en toute sécurité une application par utilisateur, directement à partir du Microsoft Store ou d’un site web. Sur les PC d’entreprise ou partagés, les applications peuvent être installées pour tous les utilisateurs via PowerShell et MDM.

Package d’infrastructure

Lorsque vous créez une application qui utilise le Kit de développement logiciel (SDK) d’application Windows, votre application fait référence à un ensemble de composants d’exécution du Kit de développement logiciel (SDK) d’application Windows distribués aux utilisateurs finaux via un package d’infrastructure. Le package d’infrastructure permet aux applications d’accéder aux composants du Kit de développement logiciel (SDK) d’application Windows via une seule source partagée sur l’appareil de l’utilisateur, au lieu de les regrouper dans le package d’application. Le package d’infrastructure contient également ses propres ressources, telles que les DLL et les définitions d’API (inscriptions COM et Windows Runtime). Ces ressources s’exécutent dans le contexte de votre application, de sorte qu’elles héritent des fonctionnalités et des privilèges de votre application, et n’affirment pas les fonctionnalités ou privilèges de leur propre application. Pour plus d’informations sur les dépendances de package d’infrastructure, consultez Packages d’infrastructure MSIX et dépendances dynamiques.

Le package d’infrastructure du Kit de développement logiciel (SDK) d’application Windows est un package MSIX déployé pour les utilisateurs finaux via le Microsoft Store. Il peut être facilement et rapidement mis à jour avec les versions de maintenance, qui peuvent inclure des correctifs de sécurité et de fiabilité. Toutes les applications dépendantes de l’infrastructure qui utilisent le SDK d’application Windows ont une dépendance sur une instance partagée du package d’infrastructure, comme illustré dans le diagramme suivant.

Diagramme de la façon dont les applications accèdent au package d’infrastructure du Kit de développement logiciel (SDK) d’application Windows

Lorsqu’une nouvelle version du package d’infrastructure du SDK d’application Windows est prise en charge, toutes les applications dépendantes de l’infrastructure sont mises à jour vers la nouvelle version sans avoir à redistribuer une copie. Les mises à jour Windows vers la dernière version des frameworks à mesure qu’elles sont publiées, et les applications référencent automatiquement la dernière version du package d’infrastructure lors du redémarrage. Les versions antérieures du package d’infrastructure ne seront pas supprimées du système tant qu’elles ne sont plus en cours d’exécution ou qu’elles ne sont pas utilisées activement par les applications sur le système.

Diagramme de la façon dont les applications obtiennent des mises à jour du package d’infrastructure du Kit de développement logiciel (SDK) d’application Windows

Étant donné que la compatibilité des applications est importante pour Microsoft et pour les applications qui dépendent du Kit de développement logiciel (SDK) d’application Windows, le package d’infrastructure du SDK d’application Windows suit les règles de gestion sémantique de version 2.0.0 . Cela signifie qu’après la publication de la version 1.0 du Kit de développement logiciel (SDK) d’application Windows, le package d’infrastructure du SDK d’application Windows garantit la compatibilité entre les modifications mineures et correctives, et les modifications cassants se produisent uniquement entre les mises à jour de version majeures.

Package Singleton

Le package singleton garantit qu’un seul processus de longue durée peut gérer les services utilisés dans plusieurs applications, qui peuvent s’exécuter sur différentes versions du Kit de développement logiciel (SDK) d’application Windows.

Le singleton du Kit de développement logiciel (SDK) d’application Windows est nécessaire pour activer les notifications Push pour les applications non empaquetées et les applications Win32 empaquetées à l’aide de versions Windows antérieures à 20H1, qui ne peuvent pas être prises en charge par la classe UWP PushNotificationTrigger et ToastNotificationActionTrigger . Les futures fonctionnalités du Kit de développement logiciel (SDK) d’application Windows qui ne peuvent pas être prises en charge par le package Framework seront ajoutées au package Singleton.

Exigences supplémentaires pour les applications non empaquetées

Programme d’amorçage

Le programme d’amorçage est une bibliothèque qui doit être incluse dans votre package avec un emplacement externe ou une application non empaquetée. Il fournit l’API de démarrage (voir Utiliser le runtime du Kit de développement logiciel (SDK) d’application Windows pour les applications empaquetées avec un emplacement externe ou non empaquetées, ce qui permet aux applications non empaquetées d’effectuer ces tâches importantes :

  • Initialisez le Gestionnaire de durée de vie des dépendances dynamiques (DDLM) pour le package d’infrastructure du Kit de développement logiciel (SDK) d’application Windows.
  • Recherchez et chargez le package d’infrastructure du Kit de développement logiciel (SDK) d’application Windows dans le graphe de package de l’application.

Pour accomplir ces tâches, le package nuget tire parti des initialiseurs de module pour connecter le programme d’amorçage pour vous. Il vous suffit de définir <WindowsPackageType>None</WindowsPackageType> dans votre fichier projet. Dans les scénarios avancés, si vous souhaitez contrôler l’initialisation, vous pouvez appeler l’API du programme d’amorçage directement dans le code de démarrage de votre application (voir Tutoriel : Utiliser l’API de démarrage dans une application empaquetée avec un emplacement externe ou non empaquetée qui utilise le Kit de développement logiciel (SDK) d’application Windows afin qu’elle puisse initialiser correctement le système pour l’application non empaquetée. Votre application doit utiliser l’API de programme d’amorçage pour pouvoir utiliser les fonctionnalités du Kit de développement logiciel (SDK) d’application Windows telles que WinUI, cycle de vie des applications, MRT Core et DWriteCore.

La bibliothèque de programme d’amorçage dans la version 1.0 du Kit de développement logiciel (SDK) d’application Windows inclut les éléments suivants :

  • Microsoft.WindowsAppRuntime.Bootstrap.dll (C++ et C#)
  • Microsoft.WindowsAppRuntime.Bootstrap.Net.dll (wrapper C#)

Dynamic Dependency Lifetime Manager (DDLM)

L’objectif du DDLM est d’empêcher la maintenance du package d’infrastructure du Kit de développement logiciel (SDK) d’application Windows lorsqu’il est utilisé par une application non empaquetée. Il contient un serveur qui doit être initialisé par le programme d’amorçage tôt dans le démarrage d’une application pour fournir cette fonctionnalité.

Il existe une DDLM pour chaque version et architecture du package d’infrastructure du SDK d’application Windows. Cela signifie que sur un x64 ordinateur, vous pouvez avoir à la fois une version et une x86 x64 version de DDLM pour prendre en charge les applications des deux architectures.

Autres conditions requises