Udostępnij przez


Architektura wdrażania i omówienie aplikacji zależnych od platformy

W tym artykule opisano architekturę wysokiego poziomu wdrożenia zestawu Windows App SDK. Poniższe pojęcia dotyczą głównie aplikacji zależnych od platformy zestawu SDK aplikacji systemu Windows. Aplikacja zależna od platformy zależy od środowiska uruchomieniowego zestawu SDK aplikacji systemu Windows, które jest obecne na maszynie docelowej.

Istnieją dwie główne opcje dystrybucji aplikacji zależnej od platformy:

Metoda wdrażania aplikacji Wymagania
Pakowane — Musi zadeklarować zależność od pakietu Framework w manifeście pakietu.
— Interfejs API wdrażania jest wymagany w przypadku aplikacji rozproszonych za pośrednictwem Microsoft Store i zalecany w przypadku aplikacji rozproszonych spoza sklepu, aby upewnić się, że są zainstalowane zależności środowiska uruchomieniowego.
Pakowane z zewnętrzną lokalizacją lub bez opakowania — Musi dystrybuować środowisko uruchomieniowe przy użyciu Instalatora lub przez bezpośrednie zainstalowanie wymaganych pakietów MSIX.
— Dodatkowe wymagania dotyczące środowiska uruchomieniowego: należy zainicjować dostęp do środowiska uruchomieniowego zestawu SDK aplikacji systemu Windows za pośrednictwem interfejsu API bootstrap.

Aby uzyskać więcej informacji na temat tych wymagań, zobacz następujące artykuły:

Kluczowe terminy

W poniższych sekcjach zdefiniowano kluczowe terminy dotyczące wdrażania zestawu Windows App SDK oraz dodatkowe szczegóły dotyczące niektórych z tych pakietów.

Termin Definicja
środowiska uruchomieniowego zestawu SDK aplikacji systemu Windows Pakiety MSIX wymagane przez aplikację do korzystania z zestawu SDK aplikacji systemu Windows. Te pakiety obejmują: Framework, Main, Singleton i DDLM. W zależności od używanych funkcji i metody wdrażania aplikacji potrzebny będzie określony zestaw tych pakietów na maszynie docelowej.
pakiet Framework Zawiera pliki binarne używane w czasie wykonywania przez aplikacje (większość funkcji zestawu SDK aplikacji systemu Windows). Platforma zawiera składnik programu inicjujący, który umożliwia aplikacjom automatyczne instalowanie najnowszej wersji zestawu SDK aplikacji systemu Windows, który zostanie zaktualizowany w regularnym cyklu wydawania.
pakiet główny Pakiet, który zawiera zadania w tle, aby śledzić zależności dynamiczne i umożliwia automatyczne aktualizacje pakietu Framework ze Sklepu Microsoft.
pakiet singleton Zawiera zadania w tle, usługi, rozszerzenia aplikacji oraz inne składniki, które nie są uwzględnione w pakiecie Framework, takie jak powiadomienia push. Jest to zazwyczaj pojedynczy długotrwały proces, który jest pośredniczony między aplikacjami.
pakiet Menedżera dynamicznego okresu istnienia zależności (DDLM) Uniemożliwia systemowi operacyjnemu wykonywanie aktualizacji obsługowych pakietów MSIX, gdy jest używany pakiet z lokalizacją zewnętrzną lub aplikacja bez pakietu.
Inicjator Lokalny plik binarny używany przez aplikacje spakowane z lokalizacją zewnętrzną oraz aplikacje niespakowane w celu znalezienia i załadowania najlepszej wersji zestawu SDK aplikacji systemu Windows, zgodnie z wymaganiami aplikacji.
Provisionowanie Proces instalowania i rejestrowania pakietów (w tym plików i kluczy rejestru) w całym systemie w celu wyeliminowania konieczności wielokrotnej instalacji przez innych użytkowników. Można to zrobić w ramach systemu operacyjnego lub wykonać podczas instalacji aplikacji.
Instalator Odwołuje się do instalatora .exe, który wdraża pakiety Framework, Main, Singleton i DDLM.
MSIX Nowoczesna technologia instalatora, która umożliwia użytkownikom bezpieczne instalowanie aplikacji na użytkownika bezpośrednio ze sklepu Microsoft Store lub witryny internetowej. Na komputerach firmowych lub współdzielonych komputerach można instalować aplikacje dla wszystkich użytkowników za pośrednictwem programu PowerShell i systemu zarządzania urządzeniami mobilnymi (MDM).

Pakiet frameworku

Podczas tworzenia aplikacji korzystającej z zestawu SDK aplikacji systemu Windows aplikacja odwołuje się do zestawu składników środowiska uruchomieniowego zestawu SDK aplikacji systemu Windows, które są dystrybuowane do użytkowników końcowych za pośrednictwem pakietu struktury. Pakiet platformowy umożliwia aplikacjom dostęp do składników zestawu SDK aplikacji systemu Windows za pośrednictwem pojedynczego udostępnionego źródła na urządzeniu użytkownika, a nie łączenia ich z pakietem aplikacji. Pakiet ramowy zawiera również własne zasoby, takie jak biblioteki DLL i definicje interfejsu API (rejestracje COM i środowiska uruchomieniowego Windows). Te zasoby są uruchamiane w kontekście aplikacji, dzięki czemu dziedziczą możliwości i uprawnienia aplikacji i nie zapewniają żadnych możliwości ani uprawnień własnych. Aby uzyskać więcej informacji na temat zależności pakietów frameworka, zobacz pakiety frameworka MSIX i zależności dynamiczne.

Pakiet platformy Zestawu SDK aplikacji systemu Windows to pakiet MSIX, który jest wdrażany dla użytkowników końcowych za pośrednictwem sklepu Microsoft Store. Można go łatwo i szybko aktualizować przy użyciu wersji obsługi, które mogą obejmować poprawki zabezpieczeń i niezawodności. Wszystkie aplikacje zależne od frameworku korzystające z zestawu Windows App SDK mają zależność od współdzielonego wystąpienia pakietu frameworku, jak pokazano na poniższym diagramie.

Diagram przedstawiający sposób uzyskiwania dostępu do pakietu struktury zestawu SDK aplikacji systemu Windows

Gdy jest obsługiwana nowa wersja pakietu zestawu SDK aplikacji systemu Windows, wszystkie aplikacje zależne od platformy są aktualizowane do nowej wersji bez konieczności ponownego rozpowszechniania kopii. System Windows aktualizuje się do najnowszej wersji struktur w miarę ich wydawania, a aplikacje będą automatycznie odwoływać się do najnowszej wersji pakietu frameworka podczas ponownego uruchamiania. Starsze wersje pakietów platformy nie zostaną usunięte z systemu, dopóki nie będą już uruchomione ani aktywnie używane przez aplikacje w systemie.

Diagram przedstawiający sposób pobierania aktualizacji pakietu platformy zestawu SDK aplikacji systemu Windows

Ze względu na to, że zgodność aplikacji jest ważna dla firmy Microsoft i aplikacji zależnych od Windows App SDK, pakiet frameworku Windows App SDK jest zgodny z regułami Semantic Versioning 2.0.0. Oznacza to, że po wydaniu wersji 1.0 pakietu SDK aplikacji systemu Windows, pakiet platformy SDK aplikacji systemu Windows zagwarantuje zgodność przy zmianach wersji pomocniczej i poprawkowej, a zmiany naruszające zgodność będą występować tylko przy aktualizacjach wersji głównej.

Pakiet singleton

Pakiet jednotonowy gwarantuje, że pojedynczy długotrwały proces może obsługiwać usługi używane w wielu aplikacjach, które mogą być uruchomione w różnych wersjach zestawu SDK aplikacji systemu Windows.

Singleton pakiet SDK aplikacji Windows jest wymagany do włączenia powiadomień push dla aplikacji nieopakowanych i opakowanych aplikacji Win32 korzystających z wersji systemu Windows poniżej 20H1, które nie mogą być obsługiwane przez istniejące klasy UWP: PushNotificationTrigger i ToastNotificationActionTrigger. Przyszłe funkcje zestawu SDK aplikacji systemu Windows, które nie mogą być obsługiwane przez pakiet framework, zostaną dodane do pakietu Singleton.

Dodatkowe wymagania dotyczące rozpakowanych aplikacji

Program rozruchowy

Program rozruchowy to biblioteka, która musi być dołączona do aplikacji opakowanej z lokalizacją zewnętrzną lub do aplikacji nieopakowanej. Udostępnia on interfejs API programu inicjującego (zobacz Use the Windows App SDK runtime for apps packaged with external location or unpackaged), który pozwala aplikacjom nierozpakowanym wykonywać następujące istotne zadania:

  • Zainicjuj dynamiczny Menedżer Okresu Trwania Zależności (DDLM) dla pakietu frameworka Windows App SDK.
  • Znajdź i załaduj pakiet frameworku Windows App SDK do struktury pakietu aplikacji.

Aby wykonać te zadania, pakiet nuget wykorzystuje automatyczne inicjatory do podłączania programu inicjatora. Wystarczy ustawić w pliku projektu <WindowsPackageType>None</WindowsPackageType>. W zaawansowanych scenariuszach, jeśli chcesz kontrolować inicjalizację, możesz wywołać interfejs API bootstrappera bezpośrednio w kodzie startowym aplikacji (zobacz Tutorial: użyj interfejsu API bootstrappera w aplikacji pakowanej z zewnętrzną lokalizacją lub rozpakowanej, która używa SDK Windows App), aby można było prawidłowo zainicjować system dla aplikacji rozpakowanej. Aplikacja musi używać interfejsu API programu inicjującego, zanim będzie mogła korzystać z funkcji zestawu SDK dla aplikacji Windows, takich jak WinUI, cykl życia aplikacji, MRT Core i DWriteCore.

Biblioteka bootstrappera w wydaniu Windows App SDK 1.0 zawiera:

  • Microsoft.WindowsAppRuntime.Bootstrap.dll (C++ i C#)
  • Microsoft.WindowsAppRuntime.Bootstrap.Net.dll (nakładka na C#)

Menedżer dynamicznego okresu istnienia zależności (DDLM)

Celem DDLM jest zapobieganie aktualizacji pakietu frameworka Windows App SDK, gdy jest on używany przez aplikację nieopakowaną. Zawiera on serwer, który musi zostać zainicjowany przez program inicjujący na wczesnym etapie uruchamiania aplikacji, aby zapewnić te funkcje.

Istnieje jeden DDLM dla każdej wersji i architektury pakietu frameworku Windows App SDK. Oznacza to, że na x64 komputerze może istnieć zarówno wersja DDLM x86, jak i x64, aby obsługiwać aplikacje obu architektur.

Wymagania dodatkowe