Typy balíčků MSIX

MSIX podporuje čtyři typy balíčků: Main, Framework, Resource a Optional. MSIX také podporuje balíčky sady, což jsou distribuční kontejnery pro jeden nebo více balíčků MSIX.

Typ balíčku definuje kombinaci chování nasazení, závislostí, spouštění a údržby. Určité chování je vlastní typu, zatímco deklarace manifestu může přepsat jiné výchozí hodnoty.

Typ Primární účel Indikátor manifestu nebo identity
Hlavní Primární balíček pro aplikaci Žádná deklarace pro jiný typ balíku
Framework Sdílené knihovny, komponenty nebo obsah modulu runtime <Framework>true</Framework>
zdroj Zdroje specifické pro jazyk, měřítko nebo kvalifikátor <ResourcePackage>true</ResourcePackage>
Volitelný Další obsah přidružený k jednomu hlavnímu balíčku <uap3:MainPackageDependency>
Skupina Distribuční kontejner pro více balíčků MSIX Manifest balíčku a hodnota ResourceId~

Hlavní balíčky

Hlavní balíček představuje primární balíček pro aplikaci. Může deklarovat aplikace, možnosti, závislosti, rozšíření a servery mimo proces.

Manifest neobsahuje explicitní značku Main-package marker. Balíček je hlavní balíček, pokud se neprohlašuje za jiný typ balíčku.

Balíčky frameworku

Balíček Framework poskytuje sdílené knihovny, komponenty, prostředky nebo jiný obsah modulu runtime. Ostatní balíčky nebo procesy před načtením obsahu přidají balíček Framework do grafu balíčků.

Balíčky frameworku podporují souběžné verze, aby aplikace mohly nezávisle přecházet na novější verze. Balíček deklaruje tento typ nastavením elementu Manifest Framework na true.

Informace o použití balíčků rozhraní Framework z zabalených a rozbalených procesů naleznete v tématu Použití rozhraní API dynamické závislosti.

Balíčky prostředků

Balíček prostředků odděluje prostředky specifické pro jazyk, měřítko zobrazení nebo jiné prostředky specifické pro daný kvalifikátor od hlavního nebo volitelného balíčku. Windows nainstaluje pouze balíčky prostředků, které se vztahují na dané zařízení nebo uživatele.

Balíčky prostředků ve výchozím nastavení nepovolují spouštění. Balíček může toto výchozí nastavení přepsat pomocí uap6:AllowExecution. Balíček deklaruje typ prostředku nastavením ResourcePackage na true.

Volitelné balíčky

Volitelný balíček obsahuje další obsah pro konkrétní hlavní balíček. Aplikace může například do samostatných balíčků umístit mapy ke stažení, prostředky s vysokým rozlišením nebo volitelné nástroje.

Na rozdíl od balíčku Framework je volitelný balíček přidružený k jedné rodině hlavního balíčku. Deklaruje tuto relaci prostřednictvím uap3:MainPackageDependency.

Informace o požadavcích na vytváření obsahu a související sady najdete v tématu Volitelné balíčky a vytváření souvisejících sad.

Balíčky bundle

Balíček sady MSIX (.msixbundle) obsahuje jeden nebo více balíčků MSIX. Sada poskytuje jeden distribuční artefakt a umožňuje Windows instalovat pouze balíčky architektury a prostředků, které se vztahují k cílovému zařízení.

Všechny balíčky v sadě patří do stejné rodiny balíčků. Bundle je kontejner, nikoli pátý typ nasaditelného balíčku.

Identifikujte typy balíčků v kódu

Třída Windows.ApplicationModel.Package zveřejňuje vlastnosti, které identifikují typ balíčku:

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";
}

Identifikace typů balíčků pomocí PowerShellu

Ve výchozím nastavení Get-AppxPackage vrátí balíčky Main a Framework. Slouží -PackageTypeFilter k zahrnutí dalších typů:

Get-AppxPackage -PackageTypeFilter Main,Framework,Resource,Optional,Bundle |
    Select-Object Name, PackageFullName, IsFramework, IsResourcePackage, IsBundle

Výstupní objekt nezpřístupňuje vlastnost IsOptional. Pomocí filtru můžete zahrnout volitelné balíčky a zkontrolovat jejich manifest nebo vztah balíčku, když je potřebujete odlišit.