Share via


App-Pakete

In Windows 8.1 machen neue App-Bündel die App-Übermittlung noch einfacher. Mithilfe von Ressourcenpaketen können Sie Kunden außerdem optionale Extras wie Lokalisierungen oder Ressourcen für hochauflösende Displays bereitstellen. Für Kunden, die auf diese Extras verzichten können, bleibt in puncto Speicherplatz, Bandbreite und App-Einkauf alles beim Alten.

Spezielle Beispiele zur Verwendung von App-Bündeln für die intelligente App-Bereitstellung finden Sie unter Verpacken des Windows Store-DirectX-Spiels und Beispiel zu Spielen mit Ressourcenpaketen.

Neues oder Aktualisierungen in Windows 8.1

  • App-Ressourcen
  • App-Bündel
  • Paketidentität
  • Bereitstellung von App-Bündeln

App-Ressourcen

Mit Windows 8.1 wird für das App-Modell eine neue Art von Paket eingeführt: das Ressourcenpaket. Mit dem Ressourcenpaket können Sie das App-Hauptpaket von zusätzlichen Ressourcen (z. B. spezielle Ressourcen für Französisch wie Zeichenfolgen oder Bilder) trennen und diese zusätzlichen Ressourcen in ein eigenes Ressourcenpaket einfügen. Das Ressourcenpaket stellt eine Verbesserung der Gesamtanpassung der App dar, ohne dass alle Ressourcenpakete auf den PC heruntergeladen und installiert werden müssen.

Das Ressourcenpaket ist optional, und das App-Paket darf nicht allein davon abhängig sein. Dies bedeutet, dass das App-Paket mindestens einen Satz mit Standardressourcen enthalten muss, die verwendet werden können, falls auf dem PC keine Ressourcenpakete installiert wurden. Damit können wichtige Versprechen eingehalten werden:

  • Das App-Paket kann auch auf PCs ohne Ressourcenpakete immer installiert und gestartet werden.

  • Falls das installierte Ressourcenpaket nicht vollständig ist, sind für das App-Paket Ressourcen als Ersatz vorhanden.

Das Ressourcenpaket erfüllt im App-Modell zwei Aufgaben:

  • Bereitstellen von Ressourcenkandidaten, die vom Ressourcenverwaltungssystem während dem Ausführen der App zum Anpassen der App-Oberfläche verwendet werden können.

  • Bereitstellen von Metadaten, mit denen das Ressourcenpaket auf einen bestimmten Ressourcenqualifizierer (z. B. Benutzerskalierung, Systemskalierung und Microsoft DirectX-Features) ausgerichtet werden kann.

Ressourcenpakete können immer nur auf einen Ressourcenqualifizierer je Paket ausgerichtet werden. Jedoch kann Ihre App viele Ressourcenpakete haben.

App-Bündel

Neben dem Ressourcenpaket wird mit Windows 8.1 auch das App-Bündel (oder .appxbundle-Paket) eingeführt, um die Verpackung und Verteilung einer Windows Store-App und von Ressourcenpaketen für Benutzer in aller Welt noch besser zu optimieren.

Sie erstellen für Ihre App die Nutzlast für das App-Bündel. Von Visual Studio wird das Bündelmanifest erstellt und hinzugefügt. Beim Erstellen des App-Bündels mit Microsoft Visual Studio Express 2013 für Windows werden die Ressourcen automatisch auf separate Pakete aufgeteilt, und die App-Blockzuordnung und die Signaturdateien werden dem Bündel hinzugefügt. Die folgenden Elemente bilden eine komplett eigenständige Windows Store-App, die auf Systemen ab Windows 8.1 bereitgestellt werden kann.

App-Pakete (.appx)

Das App-Bündel kann nur dann mehrere App-Pakete enthalten, wenn diese jeweils für eine bestimmte Architektur bereitgestellt werden. Beispielsweise kann ein App-Bündel sowohl ein X86.appx-Paket als auch ein amd64.appx-Paket enthalten, jedoch nicht zwei amd64.appx-Pakete.

Ressourcenpakete (.appx)

Das App-Bündel enthält Ressourcenpakete (Dateien mit der Dateierweiterung ".appx") für Sprache, Skalierung und DirectX-Featureebene. Jedes App-Bündel kann viele verschiedene Ressourcenpakete zur Unterstützung unterschiedlicher Gerätekonfigurationen enthalten. Bei dem direkten Verweis auf ein Ressourcenpaket in der Windows Store-App sollten Sie das Ressourcenverwaltungssystem vollständig nutzen.

Hinweis  Ressourcenpakete dürfen nie Code enthalten.

App-Bündelmanifest (AppxBundleManifest.xml)

Das App-Bündelmanifest (Datei mit der Dateierweiterung ".appxbundlemanifest") enthält alle Informationen zur Anwendbarkeit der enthaltenen Pakete. Es gibt für jedes einzelne Paket die Art des Pakets ("Anwendung" oder "Ressource") sowie die Version und die Angabe zum Ressourcenziel an. Speziell für App-Pakete sind im App-Bündelmanifest Informationen über die Architektur enthalten.

Generell ermöglicht das App-Bündelmanifest dem Windows 8.1-App-Modell die Interpretation des Inhalts von App-Bündeln. Außerdem kann während der Installation ermittelt werden, welches App-Paket und welche Ressourcenpakete auf dem Gerät des Benutzers installiert werden müssen.

Dies ist ein Beispiel für ein App-Bündelmanifestdatei.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Bundle xmlns="https://schemas.microsoft.com/appx/2013/bundle" SchemaVersion="1.0">
  <Identity Name="Example" Publisher="CN=ExamplePublisher" Version="2013.101.312.1053"/>
  <Packages>
    <Package Type="application" Version="1.0.0.5" Architecture="x86" FileName="AppPackage_X86.appx" Offset="49" Size="3207">
      <Resources>
        <Resource Language="en-us"/>
        <Resource Scale="100" />
      </Resources>
    </Package>
    <Package Type="application" Version="1.0.0.4" Architecture="x64" FileName="AppPackage_X64.appx" Offset="3329" Size="3204">
      <Resources>
        <Resource Language="en-us"/>
        <Resource Scale="100" />
      </Resources>
    </Package>
    <Package Type="resource" Version="1.0.0.0" ResourceId="French" FileName="ResourcePackage_French.appx" Offset="6606" Size="1423">
      <Resources>
        <Resource Language="fr"/>
        <Resource Language="fr-fr"/>
        <Resource Language="fr-ca"/>
      </Resources>
    </Package>
    <Package Type="resource" Version="1.0.0.3" ResourceId="HiRes" FileName="ResourcePackage_HiRes.appx" Offset="8111" Size="1584">
      <Resources>
        <Resource Scale="140"/>
      </Resources>
    </Package>
  </Packages>
</Bundle>

App-Blockzuordnung (AppxBlockMap.xml)

In der Blockzuordnungsdatei werden alle im Bündel (mit Ausnahme von App- und Ressourcenpaketen) enthaltenen Dateien zusammen mit den zugehörigen vom Betriebssystem für die Überprüfung der Dateiintegrität und zur Optimierung eines Updates für die App verwendeten kryptografischen Hashwerten aufgelistet. Weitere Informationen zur Blockzuordnungsdatei finden Sie unter Blockzuordnung des App-Pakets.

App-Signatur (AppxSignature.p7x)

Mit der Signatur des App-Bündels wird sichergestellt, dass das Paket und der Inhalt seit dem Signieren nicht mehr geändert wurden. Wenn die Überprüfung des Signaturzertifikats zu einem Zertifikat einer vertrauenswürdigen Stammzertifizierungsstelle führt, wird anhand der Signatur auch angegeben, wer das Paket signiert hat. Der Signaturgeber des Pakets ist normalerweise der Herausgeber oder Autor der App.

Hinweis  Wenn Sie Ihre App manuell zu einem Bündel verpacken möchten, können Sie dafür die eigenständigen Hilfsprogramme MakeAppx und SignTool verwenden. Weitere Informationen zum Erstellen von App-Bündeln und Bereitstellen von Windows Store-Apps finden Sie unter Verpacken, Bereitstellen und Abfragen von Windows Store-Apps.

Paketidentität

Genau wie bei App-Paketen unter Windows 8 ist eines der wesentlichen Elemente des App-Bündels der fünfteilige Tupel, mit dem das Bündel identifiziert wird. Dieser Tupel wird Paketidentität genannt und umfasst die folgenden Daten:

Eigenschaft Beschreibung
Name

Ein allgemeiner Name, der für das App-Paket verwendet wird. Beispiel: "myCompany.mySuite.myApp"

Hinweis  Dieser Name entspricht nicht zwangsläufig der Bezeichnung, die auf der App-Kachel angezeigt wird.
Herausgeber

Der Herausgeber der Windows Store-App. Meistens entspricht der Herausgeber dem Konto, das zur Registrierung für ein Windows 8-Entwicklerkonto verwendet wurde.

Version

Eine vierteilige Versionsbeschreibung (major.minor.build.revision), die zum Warten zukünftiger Versionen der App verwendet wird (z. B. "1.0.0.0").

ProcessorArchitecture

Ist standardmäßig auf "neutral" festgelegt.

ResourceID

Ist standardmäßig auf "~" festgelegt.

 

Bereitstellung von App-Bündeln

Die Bereitstellung von App-Bündeln über Windows Store erfolgt nach diesem Workflow:

Workflow der App-Verpackung

Der Bereitstellungsprozess von Windows Store-Apps umfasst mehrere Phasen. Zuerst werden von Windows 8.1 das App-Bündelmanifest und die Blockzuordnung und Signatur des Bündels beschafft und überprüft. Als Nächstes wird von Windows 8.1 das Bündelmanifest überprüft und sichergestellt, dass eine App vorhanden ist, die unter der aktuellen Architektur bereitgestellt werden kann. Wenn das richtige App-Paket gefunden wurde, werden die Bereitstellungskriterien des App-Pakets von Windows 8.1 überprüft, um sicherzustellen, dass die App-Bereitstellung erfolgreich ist.

Danach ermittelt Windows 8.1 die Teilmenge der für die Bereitstellung anwendbaren Ressourcenpakete und stellt die Binärdateien des Pakets im Verzeichnis \WindowsApps\ bereit. Im letzten Schritt wird von Windows 8.1 die Registrierung des App-Pakets und der Ressourcenpakete für das Konto des Benutzers durchgeführt.

Überprüfung

Nachdem ein Benutzer die Installation einer Windows Store-App gestartet hat, muss Windows 8.1 die folgenden Überprüfungen durchführen, bevor die Bereitstellung beginnen kann:

Test Bedingungen

Unterstützung der Architektur

Das Bündel kann bis zu drei Architektur-spezifische App-Pakete enthalten, die alle im App-Bündelmanifest angegeben sind.

Mindestversion des Betriebssystems

Sie geben die Voraussetzungen im Paketmanifest der App an. Damit wird die Anforderung beschrieben, dass eine bestimmte Mindestversion des Betriebssystems verwendet werden muss. Zum Beispiel lautet für Windows 8.1 die entsprechende Versionsnummer 6.3. Weitere Informationen zu App-Voraussetzungen finden Sie unter Voraussetzungen beim Verpacken von Apps.

App-Abhängigkeiten

Für eine Windows Store-App kann eine Abhängigkeit von einem anderen Komponentenpaket angegeben werden, um zusätzliche Funktionen zu nutzen, die für die App erforderlich sind. Weitere Informationen zu App-Abhängigkeiten finden Sie unter Abhängigkeiten beim Verpacken von Apps.

Festplattenspeicher

Bei jeder Windows Store-App ist eine bestimmte Menge an Speicherplatz für die Bereitstellung erforderlich. Wenn nicht genügend Speicherplatz zum Bereitstellen des Pakets vorhanden ist, tritt bei der Bereitstellung ein Fehler auf.

Signaturprüfung

Bei jeder Datei im App-Paket muss die Dateiintegrität gegenüber der bereits überprüften BlockMap geprüft werden.

 

Anwendbarkeit des Pakets

Nachdem von Windows 8.1 festgestellt wurde, dass das App-Bündel auf dem System bereitgestellt werden kann, wird als Nächstes ermittelt, welche Ressourcenpakete zusätzlich zum App-Paket bereitgestellt werden sollen, um die Benutzerfreundlichkeit der App zu erhöhen. Die Anwendbarkeit wird für die folgenden drei speziellen Ressourcenqualifizierer überprüft:

Qualifizierer Beschreibung

Benutzersprache

Alle Sprachen, die der Benutzer zur Liste der bevorzugten Sprachen hinzugefügt hat, werden zur endgültigen Gruppe der anwendbaren Sprachressourcenpakete hinzugezählt, die bereitgestellt werden sollen. Unter Windows 8.1 werden für Ressourcenpakete viele Gebietsschemas und Sprachen unterstützt.

Systemskalierung

Skalierungswerte für alle Monitore werden verwendet, um die endgültige Gruppe der anwendbaren Skalierungsressourcenpakete zu ermitteln, die bereitgestellt werden sollen. Windows 8.1 unterstützt drei Skalierungsfaktoren für die Ressourcenpakete: scale-100, scale-140 und scale-180.

DirectX-Featureebene

Alle im System verfügbaren DirectX-Featureebenen werden verwendet, um die endgültige Gruppe der anwendbaren DirectX-Ressourcenpakete zu ermitteln, die bereitgestellt werden sollen. Windows 8.1 unterstützt drei DirectX-Featureebenen für Ressourcenpakete: DXFL-DX9, DXFL-DX10 und DXFL-DX11.

 

Paketbereitstellung (Staging)

Nachdem Windows 8.1 festgestellt hat, dass das App-Bündel auf dem System bereitgestellt werden kann und welche Pakete bereitzustellen sind, werden die Paketinhalte in das Verzeichnis \WindowsApps\ heruntergeladen. Für jedes heruntergeladene Paket wird ein neues Verzeichnis erstellt, das nach dem Paketidentitätsnamen (Wert) benannt wird.

<Package Name>_<Version>_<Architecture>_<ResourceID>_<Publisher Hash>

Der Bereitstellungsprozess umfasst eine Reihe von Anforderungen, die vom Bereitstellungsmodul an die Quelle des Paketspeicherorts gestellt werden. Diese Anforderungen werden von der Quelle dann erfüllt und an das Bereitstellungsmodul zurückgegeben, wo sie dekomprimiert, anhand von BlockMap überprüft und in die entsprechende Datei kopiert werden.

Paketregistrierung

Die Registrierung des Pakets ist die letzte Phase des Bereitstellungsprozesses. Während dieser Phase werden zwei wichtige Vorgänge ausgeführt:

  • Die Erweiterungen, die im Paketmanifest der App deklariert sind, werden beim Betriebssystem registriert. Dadurch wird die App tief in das Betriebssystem integriert. Wenn Sie z. B. möchten, dass mit Ihrer App das Öffnen von TXT-Dateien möglich sein soll, deklarieren Sie im Paketmanifest Ihrer App eine FileTypeAssociation-Erweiterung im XML-Format und geben als Dateityp ".txt" an.

    Zur Bereitstellungszeit werden diese XML-Daten in die Gruppe der Systemänderungen übersetzt, die erforderlich sind, damit die App ordnungsgemäß für die Behandlung von TXT-Dateien registriert werden kann. Diese Änderungen werden dann vom App-Modell im Auftrag der App durchgeführt. Das App-Modell unterstützt viele unterschiedliche Erweiterungen. Weitere Informationen zu diesen Erweiterungen finden Sie unter App-Verträge und Erweiterungen.

  • Alle Ressourcenpakete werden bei dem Ressourcenverwaltungssystem registriert. Dieses System verwendet dann die Ressourcenpakete, um die App-Oberfläche während der App-Ausführung optimal an den Benutzer anzupassen.