Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O modelo de aplicação alojada permite-lhe criar aplicações leves que herdam o seu executável e ponto de entrada de uma aplicação anfitriã. A aplicação alojada é um pacote separado que contém conteúdo (scripts, assets, configuração), mas depende do runtime do host para ser executado.
Como funcionam as aplicações alojadas
Uma aplicação anfitriã declara uma HostRuntime extensão no seu manifesto, tornando o seu executável disponível para outros pacotes. Uma aplicação alojada declara uma dependência desse host e especifica qual o conteúdo a executar. Quando o utilizador inicia a aplicação alojada, o Windows inicia o executável do anfitrião e passa o conteúdo da aplicação alojada como contexto.
Este modelo é útil para:
- Motores de scripts — Um host fornece o tempo de execução (por exemplo, Python, Node.js), e as aplicações alojadas são scripts ou aplicações individuais.
- Motores de jogo — Um host fornece o motor de jogo, e as aplicações alojadas são jogos individuais.
- Frameworks de aplicações — Um anfitrião fornece um ambiente de execução da framework, e as aplicações alojadas são conteúdo executado nesse ambiente.
Importante
Tanto as aplicações host como as alojadas requerem identidade de pacote MSIX. A aplicação alojada é um pacote MSIX assinado, mas o seu executável vem do anfitrião.
Declarar um tempo de execução do host
Na aplicação Package.appxmanifest anfitriã, adicione uma extensão 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>
O Id valor é aquilo que as aplicações alojadas referenciam para declarar a sua dependência.
Declarar uma aplicação alojada
No manifesto da aplicação alojada, declare a dependência do tempo de execução do host e especifique um TrustLevel e 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>
Atributos-chave:
| Attribute | Description |
|---|---|
HostRuntimeDependency.Name |
Nome da família do pacote da aplicação anfitriã |
HostId |
Corresponde à aplicação HostRuntime.Id anfitriã |
Parameters |
Argumentos da linha de comandos passados para o executável do anfitrião |
Criar um pacote de aplicação alojado
Para criar um pacote de aplicação alojado:
- Crie um projeto MSIX padrão ou use
MakeAppx.exe. - Inclua apenas os seus ficheiros de conteúdos (scripts, recursos, configuração).
- Não inclua um executável — este é fornecido pelo sistema anfitrião.
- Declara o
HostRuntimeDependencyno manifesto. - Assine o pacote com um certificado de confiança para produção. Durante o desenvolvimento, pode registar o pacote sem assinatura (ver abaixo).
Registo de pacotes não assinados (desenvolvimento)
Durante o desenvolvimento, pode registar um pacote de aplicação alojada não assinado:
Add-AppxPackage -Path "HostedApp.msix" -AllowUnsigned
Note
O registo de pacotes não assinados é apenas para desenvolvimento. Para produção, assine o pacote com um certificado de confiança.
Exemplo: host de scripts Python
Uma aplicação de runtime em Python pode servir como hospedeiro:
-
Aplicação anfitriã — Empacota
python.exee declaraHostRuntime Id="PythonHost". -
Aplicação alojada — Contém um script Python (
app.py) e declaraHostId="PythonHost"comParameters="app.py". - Quando o utilizador inicia a aplicação alojada, o Windows executa a do anfitrião
python.exe app.pycom o diretório de pacotes da aplicação alojada como contexto de trabalho.
Conteúdo relacionado
Windows developer