Hostované aplikace v Windows App SDK

Model hostované aplikace umožňuje vytvářet odlehčené aplikace, které dědí jejich spustitelný a vstupní bod z hostitelské aplikace. Hostovaná aplikace je samostatný balíček, který obsahuje obsah (skripty, prostředky, konfiguraci), ale spoléhá na spuštění modulu runtime hostitele.

Jak hostované aplikace fungují

Hostitelská aplikace deklaruje HostRuntime rozšíření v manifestu a zpřístupňuje jeho spustitelný soubor jiným balíčkům. Hostovaná aplikace deklaruje závislost na daném hostiteli a určuje, který obsah se má spustit. Když uživatel spustí hostované aplikace, Windows spustí spustitelný soubor hostitele a předá obsah hostované aplikace jako kontext.

Tento model je užitečný pro:

  • Skriptovací moduly – Hostitel poskytuje moduly runtime (například Python, Node.js) a hostované aplikace jsou jednotlivé skripty nebo aplikace.
  • Herní stroje – hostitel poskytuje herní modul a hostované aplikace jsou jednotlivé hry.
  • Aplikační frameworky — Hostitel poskytuje běhové prostředí frameworku a hostované aplikace jsou obsah, který v něm běží.

Important

Hostitelské i hostované aplikace vyžadují identitu balíčku MSIX. Hostovaná aplikace je podepsaný balíček MSIX, ale jeho spustitelný soubor pochází z hostitele.

Deklarace modulu runtime hostitele

Do hostitelské aplikace Package.appxmanifest přidejte rozšíření 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>

Hodnotu Id hostované aplikace používají k deklaraci své závislosti.

Deklarace hostované aplikace

V manifestu hostované aplikace deklarujte závislost na hostitelském modulu runtime a zadejte TrustLevel a 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>

Klíčové atributy:

Attribute Description
HostRuntimeDependency.Name Název rodiny balíčků hostitelské aplikace
HostId Odpovídá hodnotě HostRuntime.Id v hostitelské aplikaci.
Parameters Argumenty příkazového řádku předané hostitelskému spustitelnému souboru

Vytvoření balíčku hostované aplikace

Vytvoření balíčku hostované aplikace:

  1. Vytvořte standardní projekt MSIX nebo použijte MakeAppx.exe.
  2. Zahrňte pouze soubory s vaším obsahem (jako jsou skripty, assety a konfigurace).
  3. Nezahrnujte spustitelný soubor – pochází z hostitele.
  4. Deklarujte HostRuntimeDependency v manifestu.
  5. Podepište balíček důvěryhodným certifikátem pro produkci. Během vývoje můžete balíček zaregistrovat bez znaménka (viz níže).

Registrace nepodepsaného balíčku (vývoj)

Během vývoje můžete zaregistrovat nepodepsaný balíček hostované aplikace:

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

Note

Registrace nepodepsaného balíčku je určená jenom pro vývoj. V produkčním prostředí podepište balíček důvěryhodným certifikátem.

Příklad: hostitel skriptu Python

Aplikace Python runtime může sloužit jako hostitel:

  1. Hostitelská aplikace – Balíčky python.exe a deklarace HostRuntime Id="PythonHost".
  2. Hostovaná aplikace – Obsahuje Python skript (app.py) a deklaruje HostId="PythonHost" pomocí Parameters="app.py".
  3. Když uživatel spustí hostovanou aplikaci, Windows spustí python.exe app.py hostitele s adresářem balíčku hostované aplikace jako pracovním adresářem.