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.
Von Bedeutung
Wenn Sie Ihre App an den Store übermitteln möchten, müssen Sie sich an den Windows-Entwicklersupport wenden und die Genehmigung für die Verwendung von Bestandspaketen erhalten.
Bestandspakete sind ein Pakettyp, der als zentraler Speicherort für die gemeinsamen Dateien einer Anwendung fungiert – wodurch die Notwendigkeit doppelter Dateien in allen Architekturpaketen vermieden wird. Bestandspakete ähneln Ressourcenpaketen darin, dass sie beide so konzipiert sind, dass sie statische Inhalte enthalten, die für die Ausführung Ihrer App erforderlich sind, aber anders als alle Bestandspakete immer heruntergeladen werden, unabhängig von der Systemarchitektur, Sprache oder Anzeigeskala des Benutzers.

Da Bestandspakete alle architektur-, sprach- und skalierungsunabhängigen Dateien enthalten, führt die Nutzung von Bestandspaketen zu einer reduzierten gesamt verpackten App-Größe (da diese Dateien nicht mehr dupliziert sind), um die lokale Speicherplatznutzung für große Apps zu verwalten und die Pakete Ihrer App im Allgemeinen zu verwalten.
Wie wirken sich Bestandspakete auf die Veröffentlichung aus?
Der offensichtlichste Vorteil von Bestandspaketen ist die reduzierte Größe von verpackten Apps. Kleinere App-Pakete beschleunigen den Veröffentlichungsprozess der App, indem der Store weniger Dateien verarbeiten kann. Dies ist jedoch nicht der wichtigste Vorteil von Bestandspaketen.
Wenn ein Objektpaket erstellt wird, können Sie angeben, ob das Paket ausgeführt werden darf. Da Bestandspakete nur agnostische Architekturdateien enthalten sollten, enthalten sie in der Regel keine .dll- oder .exe-Dateien, daher müssen Bestandspakete in der Regel nicht ausgeführt werden. Die Bedeutung dieser Unterscheidung besteht darin, dass während des Veröffentlichungsprozesses alle ausführbaren Pakete gescannt werden müssen, um sicherzustellen, dass sie keine Schadsoftware enthalten, und dieser Scanvorgang dauert länger für größere Pakete. Wenn ein Paket jedoch als nicht ausführbare Datei festgelegt ist, stellt die Installation der App sicher, dass dateien, die in diesem Paket enthalten sind, nicht ausgeführt werden können. Diese Garantie beseitigt die Notwendigkeit einer vollständigen Paketüberprüfung und reduziert die Schadsoftware-Scanzeit während der Veröffentlichung der App (und auch für Updates) erheblich . Dadurch wird die Veröffentlichung für Apps, die Bestandspakete verwenden, erheblich beschleunigt. Beachten Sie, dass Flat Bundle-App-Pakete auch verwendet werden müssen, um diesen Veröffentlichungsvorteil zu erhalten, da dadurch der Store jede .appx- oder MSIX-Paketdatei parallel verarbeiten kann.
Sollte ich Asset-Pakete verwenden?
Das Aktualisieren der Dateistruktur Ihrer App, um die Verwendung von Bestandspaketen zu nutzen, kann zu spürbaren Vorteilen führen: reduzierte Paketgröße und schlankere Entwicklungsiterationen. Wenn Ihre Architekturpakete alle eine erhebliche Menge an Dateien gemeinsam enthalten oder wenn der Großteil Ihrer App aus nicht ausgeführten Dateien besteht, wird dringend empfohlen, die zusätzliche Zeit für die Konvertierung in die Verwendung von Bestandspaketen zu investieren.
Es sollte jedoch darauf hingewiesen werden, dass Bestandspakete kein Mittel sind, um die Optionalität von App-Inhalten zu erreichen. Ressourcenpaketdateien sind nicht optional und werden unabhängig von der Architektur, Sprache oder Skalierung des Zielgeräts immer heruntergeladen– alle optionalen Inhalte, die Ihre App unterstützen soll, sollten mit optionalen Paketen implementiert werden.
So erstellen Sie ein Ressourcenpaket
Die einfachste Möglichkeit zum Erstellen von Bestandspaketen ist die Verwendung des Verpackungslayouts. Ressourcenpakete können jedoch auch manuell mit MakeAppx.exeerstellt werden. Um anzugeben, welche Dateien in das Objektpaket aufgenommen werden sollen, müssen Sie eine "Zuordnungsdatei" erstellen. In diesem Beispiel ist die einzige Datei im Objektpaket "Video.mp4", aber alle Dateien des Objektpakets sollten hier aufgeführt werden. Beachten Sie, dass der ResourceDimensions-Bezeichner in ResourceMetadata für Ressourcenpakete ausgelassen wird (im Vergleich zu einer Zuordnungsdatei für Ressourcenpakete).
[ResourceMetadata]
"ResourceId" "Videos"
[Files]
"Video.mp4" "Video.mp4"
Verwenden Sie einen dieser Befehle, um das Objektpaket mithilfe von MakeAppx.exe (für MSIX und .appx) zu erstellen.
MakeAppx.exe pack /r /m AppxManifest.xml /f MappingFile.txt /p Videos.appx
MakeAppx.exe pack /r /m AppxManifest.xml /f MappingFile.txt /p Videos.msix
Beachten Sie hier, dass alle Dateien, auf die in appxManifest (die Logodateien) verwiesen wird, nicht in Bestandspakete verschoben werden können – diese Dateien müssen über Architekturpakete hinweg dupliziert werden.
Bestandspakete sollten auch keine "resources.pri" enthalten; MRT kann nicht für den Zugriff auf Bestandspaketdateien verwendet werden. Weitere Informationen dazu, wie Sie auf Assetpaketdateien zugreifen und warum Assetpakete erfordern, dass Ihre App auf einem NTFS-Laufwerk installiert ist, finden Sie unter Entwickeln mit Assetpaketen und Paketfaltung.
Um zu steuern, ob ein Objektpaket ausgeführt werden darf oder nicht, können Sie uap6:AllowExecution im Properties-Element des AppxManifest verwenden. Außerdem müssen Sie dem Paketelement der obersten Ebene uap6 hinzufügen, um Folgendes zu werden:
<Package IgnorableNamespaces="uap uap6"
xmlns:uap6="http://schemas.microsoft.com/appx/manifest/uap/windows10/6"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">
Wenn nicht angegeben, ist der Standardwert für AllowExecution"true " – legen Sie ihn für Objektpakete ohne ausführbare Dateien auf "false " fest, um die Veröffentlichung zu beschleunigen.