Üzemeltetett alkalmazások a Windows App SDK

A hosztolt alkalmazásmodell lehetővé teszi, hogy könnyűsúlyú alkalmazásokat hozzon létre, amelyek a futtatható fájljukat és a belépési pontjukat egy gazdaalkalmazástól öröklik. A hosztolt alkalmazás egy különálló csomag, amely tartalmat (szkripteket, erőforrásokat, konfigurációt) tartalmaz, de a futtatásához a gazda futtatókörnyezetére támaszkodik.

Az üzemeltetett alkalmazások működése

A gazdagépalkalmazás deklarál egy bővítményt HostRuntime a jegyzékben, így végrehajthatóvá válik más csomagok számára. A üzemeltetett alkalmazások függőséget deklarálnak az adott gazdagépen, és meghatározzák, hogy mely tartalmakat kell futtatni. Amikor a felhasználó elindítja az üzemeltetett alkalmazást, a Windows elindítja a gazdaalkalmazás futtatható fájlját, és kontextusként átadja az üzemeltetett alkalmazás tartalmát.

Ez a modell a következő esetekben hasznos:

  • Szkriptmotorok — A gazdagép biztosítja a futtatási környezetet (például a Python vagy a Node.js), a hosztolt alkalmazások pedig önálló szkriptek vagy alkalmazások.
  • Játékmotorok – A gazdaalkalmazás biztosítja a játékmotort, az üzemeltetett alkalmazások pedig különálló játékok.
  • Alkalmazás-keretrendszerek — A gazdagép keretrendszer-futtatókörnyezetet biztosít, a hosztolt alkalmazások pedig az azon futó tartalmat jelentik.

Important

Mind a gazda-, mind az üzemeltetett alkalmazásokhoz MSIX-csomagidentitás szükséges. A hosztolt alkalmazás egy aláírt MSIX-csomag, de a végrehajtható fájl a hoszttól származik.

Gazdagép futtatókörnyezet deklarálása

A gazdaalkalmazás Package.appxmanifest elemében adjon hozzá egy HostRuntime bővítményt:

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

A(z) Id értékre hivatkoznak a hosztolt alkalmazások a függőségük deklarálásához.

Üzemeltetett alkalmazás deklarálása

Az üzemeltetett alkalmazás jegyzékfájljában deklarálja a gazdagép futtatókörnyezetétől való függőséget, és adjon meg egy TrustLevel és 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>

Kulcsattribútumok:

Attribute Description
HostRuntimeDependency.Name A gazdaalkalmazás csomagcsaládneve
HostId Megegyezik a hostalkalmazásban található HostRuntime.Id elemmel
Parameters A gazdaalkalmazásnak átadott parancssori argumentumok

Üzemeltetett alkalmazáscsomag létrehozása

Üzemeltetett alkalmazáscsomag létrehozása:

  1. Hozzon létre egy standard MSIX-projektet, vagy használja a következőt MakeAppx.exe:
  2. Csak a tartalomfájlokat (szkripteket, eszközöket, konfigurációt) vegye fel.
  3. Ne tartalmazzon futtatható fájlt – azt a hoszt biztosítja.
  4. Adja meg a(z) HostRuntimeDependency elemet a manifestfájlban.
  5. Írja alá a csomagot egy megbízható tanúsítvánnyal éles környezetben. A fejlesztés során aláíratlanként regisztrálhatja a csomagot (lásd alább).

Aláíratlan csomagregisztráció (fejlesztés)

A fejlesztés során regisztrálhat egy nem aláírt hosztolt alkalmazáscsomagot:

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

Note

Az aláíratlan csomagregisztráció csak fejlesztésre vonatkozik. Éles környezetben írja alá a csomagot egy megbízható tanúsítvány használatával.

Példa: Python szkriptgazda

Egy Python futtatókörnyezeti alkalmazás gazdagépként szolgálhat:

  1. Gazdaalkalmazás — becsomagolja a(z) python.exe elemet, és deklarálja a(z) HostRuntime Id="PythonHost" elemet.
  2. Hosztolt alkalmazás — Egy Python-szkriptet (app.py) tartalmaz, és Parameters="app.py" használatával deklarálja a(z) HostId="PythonHost" elemet.
  3. Amikor a felhasználó elindítja az üzemeltetett alkalmazást, a Windows a gazdagép python.exe app.py elemét úgy futtatja, hogy munkakörnyezetként az üzemeltetett alkalmazás csomagkönyvtárát használja.