Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met het gehoste app-model kunt u lichtgewicht apps maken die hun uitvoerbare en invoerpunt overnemen van een host-app. De gehoste app is een afzonderlijk pakket met inhoud (scripts, assets, configuratie), maar is afhankelijk van de runtime van de host die moet worden uitgevoerd.
Hoe gehoste apps werken
Een host-app declareert een HostRuntime extensie in het manifest, waardoor het uitvoerbare bestand beschikbaar wordt gemaakt voor andere pakketten. Een gehoste app declareert een afhankelijkheid van die host en geeft aan welke inhoud moet worden uitgevoerd. Wanneer de gebruiker de gehoste app start, start Windows het uitvoerbare bestand van de host en geeft de inhoud van de gehoste app door als context.
Dit model is handig voor:
- Scriptengines: een host biedt de runtime (bijvoorbeeld Python, Node.js) en gehoste apps zijn afzonderlijke scripts of toepassingen.
- Game-engines : een host biedt de game-engine en gehoste apps zijn afzonderlijke games.
- App-frameworks : een host biedt een frameworkruntime en gehoste apps zijn inhoud die erop wordt uitgevoerd.
Important
Voor zowel host- als gehoste apps is een MSIX-pakketidentiteit vereist. De gehoste app is een ondertekend MSIX-pakket, maar het uitvoerbare bestand is afkomstig van de host.
Een hostruntime declareren
Voeg in de host-app Package.appxmanifesteen HostRuntime extensie toe:
<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>
De Id waarde is waarnaar gehoste apps verwijzen om hun afhankelijkheid te declareren.
Een gehoste app declareren
Declareer in het manifest van de gehoste app de afhankelijkheid van de hostruntime en specificeer een TrustLevel en 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=""script.py"">
</Application>
</Applications>
</Package>
Belangrijkste kenmerken:
| Attribute | Description |
|---|---|
HostRuntimeDependency.Name |
Pakketfamilienaam van de host-app |
HostId |
Komt overeen met de HostRuntime.Id in de host-app |
Parameters |
Opdrachtregelargumenten meegegeven aan het hostprogramma |
Een gehost app-pakket maken
Een gehost app-pakket maken:
- Maak een standaard MSIX-project of gebruik
MakeAppx.exe. - Alleen uw inhoudsbestanden (scripts, assets, configuratie) opnemen.
- Neem geen uitvoerbaar bestand op. Het is afkomstig van de host.
- Declareer het
HostRuntimeDependencyin het manifest. - Onderteken het pakket met een vertrouwd certificaat voor productie. Tijdens de ontwikkeling kunt u het pakket niet-ondertekend registreren (zie hieronder).
Registratie van een niet-ondertekend pakket (ontwikkeling)
Tijdens de ontwikkeling kunt u een niet-ondertekend gehost app-pakket registreren:
Add-AppxPackage -Path "HostedApp.msix" -AllowUnsigned
Note
Registratie van een niet-ondertekend pakket is uitsluitend bedoeld voor ontwikkeling. Voor productie ondertekent u het pakket met een vertrouwd certificaat.
Voorbeeld: Python scripthost
Een Python runtime-app kan fungeren als host:
-
Host app — Bevat
python.exeen declareertHostRuntime Id="PythonHost". -
Gehoste app: bevat een Python script (
app.py) en declareertHostId="PythonHost"metParameters="app.py". - Wanneer de gebruiker de gehoste app start, voert Windows
python.exe app.pyvan de host uit, waarbij de pakketmap van de gehoste app als werkmap wordt gebruikt.
Verwante onderwerpen
Windows developer