Värdappar i Windows App SDK

Med den värdbaserade appmodellen kan du skapa enkla appar som ärver deras körbara och startpunkt från en värdapp. Värdappen är ett separat paket som innehåller innehåll (skript, resurser, konfiguration) men förlitar sig på värdens körningsmiljö för att köras.

Så här fungerar värdbaserade appar

En värdapp deklarerar ett HostRuntime tillägg i sitt manifest, vilket gör det körbart tillgängligt för andra paket. En värdbaserad app deklarerar ett beroende av värden och anger vilket innehåll som ska köras. När användaren startar värdappen startar Windows värdappens körbara fil och skickar värdappens innehåll som kontextinformation.

Den här modellen är användbar för:

  • Skriptmotorer – En värd tillhandahåller körningen (till exempel Python, Node.js) och värdbaserade appar är enskilda skript eller program.
  • Spelmotorer – En värd tillhandahåller spelmotorn och värdbaserade appar är enskilda spel.
  • Appramverk – En värd tillhandahåller en ramverkskörning och värdbaserade appar är innehåll som körs på den.

Important

Både värd- och värdbaserade appar kräver MSIX-paketidentitet. Den värdbaserade appen är ett signerat MSIX-paket, men den körbara filen kommer från värden.

Deklarera en värdkörning

I värdappens Package.appxmanifestlägger du till ett HostRuntime tillägg:

<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>

Värdet Id är vad värdbaserade appar refererar till för att deklarera sitt beroende.

Deklarera en värdbaserad app

I den värdbaserade appens manifest deklarerar du värdkörningsberoendet och anger ett TrustLevel och 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>

Nyckelattribut:

Attribute Description
HostRuntimeDependency.Name Paketfamiljenamnet för värdappen
HostId Motsvarar HostRuntime.Id i värdappen
Parameters Kommandoradsargument som skickas till värdprogrammet

Skapa ett värdbaserat apppaket

Så här skapar du ett värdbaserat apppaket:

  1. Skapa ett MSIX-standardprojekt eller använd MakeAppx.exe.
  2. Inkludera endast dina innehållsfiler (skript, tillgångar, konfiguration).
  3. Inkludera inte en körbar – den kommer från värdsystemet.
  4. Deklarera HostRuntimeDependency i manifestet.
  5. Signera paketet med ett betrott certifikat för produktion. Under utvecklingen kan du registrera paketet osignerat (se nedan).

Osignerad paketregistrering (utveckling)

Under utvecklingen kan du registrera ett osignerat värdbaserat apppaket:

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

Note

Osignerad paketregistrering är endast avsedd för utveckling. För produktion signerar du paketet med ett betrott certifikat.

Exempel: värd för Python-skript

En Python runtime-app kan fungera som värd:

  1. Värdapp – Paket python.exe och deklarerar HostRuntime Id="PythonHost".
  2. Värdbaserad app – Innehåller ett Python skript (app.py) och deklarerar HostId="PythonHost" med Parameters="app.py".
  3. När användaren startar den värdbaserade appen kör Windows värdens python.exe app.py med den värdbaserade appens paketkatalog som arbetskontext.