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.
MsiX obsługuje cztery typy pakietów: Main, Framework, Resource i Optional. MSIX obsługuje również pakiety Bundle, które są kontenerami dystrybucyjnymi dla co najmniej jednego pakietu MSIX.
Typ pakietu definiuje kombinację zachowań wdrażania, zależności, wykonywania i serwisowania. Niektóre zachowania są związane z typem, podczas gdy deklaracja manifestu może zastąpić inne wartości domyślne.
| Typ | Cel podstawowy | Wskaźnik manifestu lub tożsamości |
|---|---|---|
| Główne | Pakiet podstawowy dla aplikacji | Brak deklaracji dla innego typu pakietu |
| Framework | Udostępnione biblioteki, składniki lub zawartość środowiska uruchomieniowego | <Framework>true</Framework> |
| Resource | Zasoby specyficzne dla języka, skali lub kwalifikatora | <ResourcePackage>true</ResourcePackage> |
| Fakultatywny | Dodatkowa zawartość skojarzona z jednym pakietem głównym | <uap3:MainPackageDependency> |
| Pakiet | Kontener dystrybucji dla wielu pakietów MSIX | Manifest pakietu i wartość ~ |
Główne pakiety
Pakiet Main reprezentuje pakiet podstawowy dla aplikacji. Może deklarować aplikacje, możliwości, zależności, rozszerzenia i serwery uruchamiane poza procesem.
Manifest nie zawiera jawnego znacznika Main-package. Pakiet jest pakietem głównym, gdy nie deklaruje się jako inny typ pakietu.
Pakiety struktury
Pakiet frameworka udostępnia udostępnione biblioteki, składniki, zasoby lub inną zawartość środowiska uruchomieniowego. Inne pakiety lub procesy dodają pakiet framework do grafu pakietów przed załadowaniem jego zawartości.
Pakiety frameworka obsługują wersje instalowane równolegle, dzięki czemu aplikacje mogą niezależnie przenosić się do nowszych wersji. Pakiet deklaruje ten typ, ustawiając element manifestu Framework na true.
Aby uzyskać informacje o korzystaniu z pakietów Framework w procesach pakietowych i niepakietowych, zobacz Używanie dynamicznego interfejsu API zależności.
Pakiety zasobów
Pakiet zasobów oddziela zasoby specyficzne dla języka, skali wyświetlania lub innych kwalifikatorów od pakietu głównego lub opcjonalnego. Windows instaluje tylko pakiety zasobów, które mają zastosowanie do urządzenia lub użytkownika.
Pakietów zasobów nie można domyślnie uruchamiać. Pakiet może zastąpić tę wartość domyślną za pomocą uap6:AllowExecution. Pakiet deklaruje typ zasobu, ustawiając wartość ResourcePackage na true.
Pakiety opcjonalne
Opcjonalny pakiet zawiera dodatkową zawartość dla określonego pakietu głównego. Na przykład aplikacja może umieszczać mapy do pobrania, zasoby o wysokiej rozdzielczości lub opcjonalne narzędzia w oddzielnych pakietach.
W przeciwieństwie do pakietu framework opcjonalny pakiet jest skojarzony z jedną rodziną pakietu Main. Deklaruje ona relację za pośrednictwem elementu uap3:MainPackageDependency.
Aby uzyskać informacje o wymaganiach dotyczących tworzenia i powiązanych zestawów, zobacz Opcjonalne pakiety i tworzenie powiązanych zestawów.
Pakiety zbiorcze
Pakiet MSIX (.msixbundle) zawiera co najmniej jeden pakiet MSIX. Pakiet udostępnia jeden artefakt dystrybucji, umożliwiając Windows instalowanie tylko pakietów architektury i zasobów, które mają zastosowanie do urządzenia docelowego.
Wszystkie pakiety w pakiecie zbiorczym należą do tej samej rodziny pakietów. Bundle jest kontenerem, a nie piątym wdrażalnym typem pakietu.
Identyfikowanie typów pakietów w kodzie
Klasa Windows.ApplicationModel.Package uwidacznia właściwości identyfikujące typ pakietu:
static string GetPackageType(Windows.ApplicationModel.Package package)
{
if (package.IsBundle)
{
return "Bundle";
}
if (package.IsFramework)
{
return "Framework";
}
if (package.IsResourcePackage)
{
return "Resource";
}
if (package.IsOptional)
{
return "Optional";
}
return "Main";
}
Identyfikowanie typów pakietów za pomocą programu PowerShell
Domyślnie Get-AppxPackage zwraca pakiety Main i Framework. Użyj -PackageTypeFilter, aby uwzględnić inne typy:
Get-AppxPackage -PackageTypeFilter Main,Framework,Resource,Optional,Bundle |
Select-Object Name, PackageFullName, IsFramework, IsResourcePackage, IsBundle
Obiekt wyjściowy nie udostępnia właściwości IsOptional. Użyj filtru, aby uwzględnić opcjonalne pakiety i sprawdzić ich manifest lub relację pakietu, gdy trzeba je odróżnić.