Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
MSIX unterstützt vier Pakettypen: Main, Framework, Resource und Optional. MSIX unterstützt auch Bundle-Pakete, die Verteilungscontainer für ein oder mehrere MSIX-Pakete sind.
Ein Pakettyp definiert eine Kombination aus Bereitstellung, Abhängigkeit, Ausführung und Wartungsverhalten. Einige Verhaltensweisen sind dem Typ inhärent, während eine Manifestdeklaration andere Standardwerte überschreiben kann.
| Typ | Hauptzweck | Manifest- oder Identitätsindikator |
|---|---|---|
| Main | Primäres Paket für eine Anwendung | Keine Deklaration für einen anderen Pakettyp |
| Framework | Freigegebene Bibliotheken, Komponenten oder Laufzeitinhalte | <Framework>true</Framework> |
| Ressource | Sprach-, Skalen- oder qualifiziererspezifische Ressourcen | <ResourcePackage>true</ResourcePackage> |
| Optional | Zusätzliche Inhalte, die einem Main-Paket zugeordnet sind | <uap3:MainPackageDependency> |
| Bündel | Verteilungscontainer für mehrere MSIX-Pakete | Bündelmanifest und ein ResourceId Wert von ~ |
Hauptpakete
Ein Hauptpaket stellt das primäre Paket für eine Anwendung dar. Sie kann Anwendungen, Funktionen, Abhängigkeiten, Erweiterungen und Out-of-Process-Server deklarieren.
Das Manifest enthält keine explizite Main-Package-Markierung. Ein Paket ist ein Hauptpaket, wenn es sich nicht als ein anderer Pakettyp deklariert.
Frameworkpakete
Ein Framework-Paket stellt freigegebene Bibliotheken, Komponenten, Ressourcen oder andere Laufzeitinhalte bereit. Andere Pakete oder Prozesse fügen das Framework-Paket ihrem Paketgraphen hinzu, bevor sie dessen Inhalt laden.
Frameworkpakete unterstützen parallele Versionen, sodass Anwendungen unabhängig auf neuere Versionen umsteigen können. Ein Paket deklariert diesen Typ, indem das Manifestelement Framework auf true gesetzt wird.
Informationen zum Verwenden von Framework-Paketen aus verpackten und entpackten Prozessen finden Sie unter Verwenden der API für dynamische Abhängigkeiten.
Ressourcenpakete
Ein Ressourcenpaket trennt sprach-, anzeigeskalierungs- oder andere qualifikatorspezifische Ressourcen von einem Haupt- oder optionalen Paket. Windows installiert nur die Ressourcenpakete, die für ein Gerät oder einen Benutzer gelten.
Ressourcenpakete lassen die Ausführung standardmäßig nicht zu. Ein Paket kann diese Standardeinstellung mit uap6:AllowExecution überschreiben. Ein Paket deklariert den Ressourcentyp durch Festlegen von ResourcePackage auf true.
Optionale Pakete
Ein optionales Paket enthält zusätzlichen Inhalt für ein bestimmtes Hauptpaket. Beispielsweise kann eine Anwendung herunterladbare Karten, hochauflösende Ressourcen oder optionale Tools in separaten Paketen platzieren.
Im Gegensatz zu einem Framework-Paket ist ein optionales Paket einer Hauptpaketfamilie zugeordnet. Es deklariert diese Beziehung über uap3:MainPackageDependency.
Informationen zum Verfassen und zu Anforderungen für Related Sets finden Sie unter Optionale Pakete und das Verfassen von Related Sets.
Bundle-Pakete
Ein MSIX-Bündel (.msixbundle) enthält mindestens ein MSIX-Paket. Ein Bündel stellt ein Verteilungsartefakt bereit, während Windows nur die Architektur- und Ressourcenpakete installieren kann, die für das Zielgerät gelten.
Alle Pakete in einem Bündel gehören zur gleichen Paketfamilie. Ein Bundle ist ein Container anstelle eines fünften bereitstellungsfähigen Pakettyps.
Identifizieren von Pakettypen im Code
Die Windows.ApplicationModel.Package-Klasse stellt Eigenschaften bereit, die einen Pakettyp identifizieren:
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";
}
Identifizieren von Pakettypen mit PowerShell
Gibt standardmäßig Get-AppxPackage Main- und Framework-Pakete zurück. Verwenden Sie -PackageTypeFilter, um andere Typen einzuschließen:
Get-AppxPackage -PackageTypeFilter Main,Framework,Resource,Optional,Bundle |
Select-Object Name, PackageFullName, IsFramework, IsResourcePackage, IsBundle
Das Ausgabeobjekt stellt keine Eigenschaft IsOptional bereit. Verwenden Sie den Filter, um optionale Pakete einzuschließen, und prüfen Sie deren Manifest- oder Paketbeziehung, wenn Sie sie unterscheiden müssen.