Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il modello di app ospitata consente di creare app leggere che ereditano il file eseguibile e il punto di ingresso da un'app host. L'app ospitata è un pacchetto separato che contiene contenuto (script, asset, configurazione), ma si basa sul runtime dell'host per l'esecuzione.
Funzionamento delle app ospitate
Un'app host dichiara un'estensioneHostRuntime nel manifesto, rendendo il file eseguibile disponibile per altri pacchetti.
Un'app ospitata dichiara una dipendenza dall'host e specifica il contenuto da eseguire. Quando l'utente avvia l'app ospitata, Windows avvia l'eseguibile dell'host e passa il contenuto dell'app ospitata come contesto.
Questo modello è utile per:
- Motori di script: un host fornisce il runtime (ad esempio, Python, Node.js) e le app ospitate sono singoli script o applicazioni.
- Motori di gioco : un host fornisce il motore di gioco e le app ospitate sono singoli giochi.
- Framework per app — un host fornisce un ambiente di runtime del framework e le app ospitate sono contenuti che vengono eseguiti al suo interno.
Importante
Sia le app host sia le app ospitate richiedono l'identità del pacchetto MSIX. L'app ospitata è un pacchetto MSIX firmato, ma il relativo eseguibile proviene dall'host.
Dichiarare un runtime dell'host
Nel Package.appxmanifest dell'app host, aggiungi un'estensione 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>
Il valore Id è ciò a cui le app ospitate fanno riferimento per dichiarare la propria dipendenza.
Dichiarare un'app ospitata
Nel manifesto dell'app ospitata, dichiarare la dipendenza del runtime host e specificare un TrustLevel e un 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>
Attributi chiave:
| Attribute | Description |
|---|---|
HostRuntimeDependency.Name |
Nome della famiglia di pacchetti dell'app host |
HostId |
Corrisponde a HostRuntime.Id nell'app host |
Parameters |
Argomenti della riga di comando passati all'eseguibile host |
Crea un pacchetto dell'app ospitata
Per creare un pacchetto di app ospitata:
- Creare un progetto MSIX standard o usare
MakeAppx.exe. - Includere solo i file di contenuto (script, asset, configurazione).
- Non includere un eseguibile: viene fornito dall'host.
- Dichiara
HostRuntimeDependencynel manifesto. - Firma il pacchetto con un certificato attendibile per la produzione. Durante lo sviluppo, è possibile registrare il pacchetto non firmato (vedi sotto).
Registrazione del pacchetto non firmato (sviluppo)
Durante lo sviluppo, è possibile registrare un pacchetto di app ospitata non firmato:
Add-AppxPackage -Path "HostedApp.msix" -AllowUnsigned
Note
La registrazione di un pacchetto non firmato è solo per lo sviluppo. Per la produzione, firmare il pacchetto con un certificato attendibile.
Esempio: host di script Python
Un'app di runtime Python può fungere da host:
-
Applicazione host — crea pacchetti
python.exee dichiaraHostRuntime Id="PythonHost". -
App ospitata: contiene uno script Python (
app.py) e dichiaraHostId="PythonHost"conParameters="app.py". - Quando l'utente avvia l'app ospitata, Windows esegue il
python.exe app.pydell'host usando come directory di lavoro la directory del pacchetto dell'app ospitata.