Applications hébergées dans SDK d'application Windows

Le modèle d’application hébergé vous permet de créer des applications légères qui héritent de leur exécutable et de leur point d’entrée à partir d’une application hôte. L’application hébergée est un package distinct qui contient du contenu (scripts, ressources, configuration), mais s’appuie sur le runtime de l’hôte à exécuter.

Fonctionnement des applications hébergées

Une application hôte déclare une HostRuntime extension dans son manifeste, rendant son exécutable disponible pour d’autres packages. Une application hébergée déclare une dépendance sur cet hôte et spécifie le contenu à exécuter. Lorsque l'utilisateur lance l'application hébergée, Windows démarre l'exécutable de l'hôte et transmet le contenu de l'application hébergée en tant que contexte.

Ce modèle est utile pour :

  • Moteurs de script : un hôte fournit le runtime (par exemple, Python, Node.js), et les applications hébergées sont des scripts ou des applications hébergées.
  • Moteurs de jeu : un hôte fournit le moteur de jeu et les applications hébergées sont des jeux individuels.
  • Infrastructures d’application : un hôte fournit un runtime d’infrastructure et les applications hébergées sont du contenu qui s’exécute dessus.

Important

Les applications hôtes et hébergées nécessitent une identité de package MSIX. L’application hébergée est un package MSIX signé, mais son exécutable provient de l’hôte.

Déclarer un runtime hôte

Dans l’application hôte Package.appxmanifest, ajoutez une extension HostRuntime :

<Package xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10" ...>
  <Applications>
    <Application Id="App" Executable="MyHost.exe" EntryPoint="...">
      <Extensions>
        <uap10:Extension Category="windows.hostRuntime">
          <uap10:HostRuntime Id="MyHostRuntime" />
        </uap10:Extension>
      </Extensions>
    </Application>
  </Applications>
</Package>

La Id valeur est la référence des applications hébergées pour déclarer leur dépendance.

Déclarer une application hébergée

Dans le manifeste de l’application hébergée, déclarez la dépendance d’exécution de l’hôte et spécifiez a TrustLevel et RuntimeBehavior:

<Package xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10" ...>
  <Dependencies>
    <uap10:HostRuntimeDependency Name="HostAppPackageFamilyName"
                                  Publisher="CN=HostPublisher"
                                  MinVersion="1.0.0.0" />
  </Dependencies>
  <Applications>
    <Application Id="App"
                 uap10:HostId="MyHostRuntime"
                 uap10:Parameters="&quot;script.py&quot;">
    </Application>
  </Applications>
</Package>

Attributs clés :

Caractéristique Description
HostRuntimeDependency.Name Nom de famille du package de l’application hôte
HostId Correspond à HostRuntime.Id dans l’application hôte
Parameters Arguments de la ligne de commande transmis à l’exécutable hôte

Créer un package d’application hébergé

Pour créer un package d’application hébergé :

  1. Créez un projet MSIX standard ou utilisez MakeAppx.exe.
  2. Incluez uniquement vos fichiers de contenu (scripts, ressources, configuration).
  3. N’incluez pas d’exécutable , il provient de l’hôte.
  4. Déclarez le HostRuntimeDependency dans le manifeste.
  5. Signez le package avec un certificat approuvé pour la production. Pendant le développement, vous pouvez inscrire le package non signé (voir ci-dessous).

Enregistrement d’un paquet non signé (développement)

Pendant le développement, vous pouvez inscrire un package d’application hébergé non signé :

Add-AppxPackage -Path "HostedApp.msix" -AllowUnsigned

Note

L’enregistrement d’un package non signé est réservé au développement uniquement. Pour la production, signez le package avec un certificat approuvé.

Exemple : hôte de script Python

Une application runtime Python peut servir d’hôte :

  1. Application hôte — packagise python.exe et déclare HostRuntime Id="PythonHost".
  2. Application hébergée : contient un script Python (app.py) et déclare HostId="PythonHost" avec Parameters="app.py".
  3. Lorsque l'utilisateur lance l'application hébergée, Windows exécute l'python.exe app.pyhôte avec le répertoire de package de l'application hébergée comme contexte de travail.