Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Model aplikacji hostowanej umożliwia tworzenie lekkich aplikacji, które dziedziczą plik wykonywalny i punkt wejścia z aplikacji hostującej. Aplikacja hostowana jest oddzielnym pakietem zawierającym zawartość (skrypty, zasoby, konfigurację), ale korzysta ze środowiska uruchomieniowego hosta do wykonania.
Jak działają hostowane aplikacje
Aplikacja hosta deklaruje rozszerzenie w manifeścieHostRuntime, udostępniając plik wykonywalny innym pakietom.
Aplikacja hostowana deklaruje zależność od tego hosta i określa zawartość do uruchomienia. Gdy użytkownik uruchamia hostowaną aplikację, Windows uruchamia plik wykonywalny hosta i przekazuje zawartość hostowanej aplikacji jako kontekst.
Ten model jest przydatny w następujących celach:
- Silniki skryptowe — host zapewnia środowisko uruchomieniowe (na przykład Python, Node.js), a hostowane aplikacje to poszczególne skrypty lub aplikacje.
- Silniki gier — host udostępnia silnik gry, a hostowane aplikacje to poszczególne gry.
- Struktury aplikacji — host udostępnia środowisko uruchomieniowe platformy, a hostowane aplikacje to zawartość, która jest na niej uruchamiana.
Ważna
Zarówno aplikacja hosta, jak i aplikacja hostowana wymagają identyfikatora pakietu MSIX. Aplikacja hostowana jest podpisanym pakietem MSIX, ale jego plik wykonywalny pochodzi z hosta.
Deklarowanie środowiska uruchomieniowego hosta
W aplikacji hosta Package.appxmanifest dodaj rozszerzenie 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>
Wartość Id jest tym, do czego odwołują się hostowane aplikacje, aby zadeklarować ich zależność.
Deklarowanie hostowanej aplikacji
W manifeście hostowanej aplikacji zadeklaruj zależność środowiska uruchomieniowego hosta i określ element TrustLevel i 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>
Atrybuty klucza:
| Atrybut | Description |
|---|---|
HostRuntimeDependency.Name |
Nazwa rodziny pakietów aplikacji hosta |
HostId |
Odpowiada elementowi HostRuntime.Id w aplikacji hostującej |
Parameters |
Argumenty wiersza poleceń przekazywane do programu wykonywalnego hosta |
Tworzenie pakietu hostowanej aplikacji
Aby utworzyć pakiet hostowanej aplikacji:
- Utwórz standardowy projekt MSIX lub użyj polecenia
MakeAppx.exe. - Uwzględnij tylko pliki zawartości (skrypty, zasoby, konfigurację).
- Nie dołączaj pliku wykonywalnego — pochodzi z hosta.
- Zadeklaruj element
HostRuntimeDependencyw manifeście. - Podpisz pakiet za pomocą zaufanego certyfikatu dla środowiska produkcyjnego. Podczas tworzenia aplikacji można zarejestrować pakiet bez podpisu (patrz poniżej).
Rejestracja niepodpisanego pakietu (programowanie)
Podczas programowania można zarejestrować niepodpisany pakiet aplikacji hostowanej:
Add-AppxPackage -Path "HostedApp.msix" -AllowUnsigned
Note
Rejestracja niepodpisanego pakietu służy tylko do programowania. W środowisku produkcyjnym podpisz pakiet za pomocą zaufanego certyfikatu.
Przykład: host skryptów Python
Aplikacja środowiska uruchomieniowego Python może służyć jako host:
-
Aplikacja hostująca — pakuje
python.exei deklarujeHostRuntime Id="PythonHost". -
Hostowana aplikacja — zawiera skrypt Python (
app.py) i deklaruje elementHostId="PythonHost"za pomocą poleceniaParameters="app.py". - Gdy użytkownik uruchamia hostowaną aplikację, Windows uruchamia host
python.exe app.pyz katalogiem pakietów hostowanej aplikacji jako kontekstem roboczym.