Erstellen und Konvertieren einer Quellinhalt-Gruppenzuordnung

Um Ihre App für die Streaminginstallation vorzubereiten, müssen Sie eine Inhaltsgruppenzuordnung erstellen. Dieser Artikel hilft Ihnen bei der Erstellung und Konvertierung einer Inhaltsgruppenzuordnung, während Sie einige Tipps und Tricks auf dem Weg bereitstellen.

Erstellen der Quellinhaltsgruppenzuordnung

Sie müssen eine SourceAppxContentGroupMap.xml Datei erstellen und dann entweder Visual Studio oder das MakeAppx.exe Tool verwenden, um diese Datei in die endgültige Version zu konvertieren: AppxContentGroupMap.xml Es ist möglich, einen Schritt zu überspringen, indem Sie die AppxContentGroupMap.xml Von Grund auf neu erstellen, aber es wird empfohlen (und allgemein einfacher), dies SourceAppxContentGroupMap.xml zu erstellen und zu konvertieren, da Wildcards nicht in den AppxContentGroupMap.xml (und sie sind wirklich hilfreich) sind.

Sehen wir uns ein einfaches Szenario an, in dem die App-Streaminginstallation vorteilhaft ist.

Angenommen, Sie haben ein Spiel erstellt, aber die Größe Ihrer endgültigen App beträgt über 100 GB. Dies wird lange dauern, um aus dem Microsoft Store herunterzuladen, was unannelich sein kann. Wenn Sie die App-Streaminginstallation verwenden möchten, können Sie die Reihenfolge angeben, in der die Dateien Ihrer App heruntergeladen werden. Indem Sie den Store mitteilen, zuerst wichtige Dateien herunterzuladen, kann der Benutzer schneller mit Ihrer App interagieren, während andere nicht wesentliche Dateien im Hintergrund heruntergeladen werden.

Hinweis

Die Verwendung der App-Streaminginstallation basiert stark auf der Dateiorganisation Ihrer App. Es wird empfohlen, das Inhaltslayout Ihrer App im Hinblick auf die App-Streaminginstallation so schnell wie möglich zu berücksichtigen, damit die Segmentierung der App-Dateien einfacher wird.

Zunächst erstellen wir eine SourceAppxContentGroupMap.xml Datei.

Bevor wir uns mit den Details beschäftigen, finden Sie hier ein Beispiel für eine einfache, vollständige SourceAppxContentGroupMap.xml Datei:

<?xml version="1.0" encoding="utf-8"?>  
<ContentGroupMap xmlns="http://schemas.microsoft.com/appx/2016/sourcecontentgroupmap" 
                 xmlns:s="http://schemas.microsoft.com/appx/2016/sourcecontentgroupmap"> 
    <Required>
        <ContentGroup Name="Required">
            <File Name="StreamingTestApp.exe"/>
        </ContentGroup>
    </Required>
    <Automatic>
        <ContentGroup Name="Level2">
            <File Name="Assets\Level2\*"/>
        </ContentGroup>
        <ContentGroup Name="Level3">
            <File Name="Assets\Level3\*"/>
        </ContentGroup>
    </Automatic>
</ContentGroupMap>

Es gibt zwei Hauptkomponenten für eine Inhaltsgruppenzuordnung: den erforderlichen Abschnitt, der die erforderliche Inhaltsgruppe enthält, und den automatischen Abschnitt, der mehrere automatische Inhaltsgruppen enthalten kann.

Erforderliche Inhaltsgruppe

Die erforderliche Inhaltsgruppe ist eine einzelne Inhaltsgruppe innerhalb des <Required> Elements der SourceAppxContentGroupMap.xml. Eine erforderliche Inhaltsgruppe sollte alle wichtigen Dateien enthalten, die zum Starten der App mit der minimalen Benutzererfahrung erforderlich sind. Aufgrund .NET Native Kompilierung muss der gesamte Code (die ausführbare Anwendung) Teil der erforderlichen Gruppe sein und Ressourcen und andere Dateien für die automatischen Gruppen verlassen.

Wenn Ihre App beispielsweise ein Spiel ist, kann die erforderliche Gruppe Dateien enthalten, die im Hauptmenü oder im Startbildschirm des Spiels verwendet werden.

Hier sehen Sie den Codeausschnitt aus unserer ursprünglichen SourceAppxContentGroupMap.xml Beispieldatei:

<Required>
    <ContentGroup Name="Required">
        <File Name="StreamingTestApp.exe"/>
    </ContentGroup>
</Required>

Hier sind einige wichtige Punkte zu beachten:

  • Das <ContentGroup> Innerhalb des <Required> Elements muss "Erforderlich" genannt werden. Dieser Name ist nur für die erforderliche Inhaltsgruppe reserviert und kann nicht mit anderen <ContentGroup> in der endgültigen Inhaltsgruppenzuordnung verwendet werden.
  • Es gibt nur eine <ContentGroup>. Dies ist beabsichtigt, da nur eine Gruppe von wichtigen Dateien vorhanden sein sollte.
  • Die Datei in diesem Beispiel ist eine einzelne .exe Datei. Eine erforderliche Inhaltsgruppe ist nicht auf eine Datei beschränkt, es kann mehrere geben.

Eine einfache Möglichkeit, diese Datei zu schreiben, besteht darin, eine neue Seite in Ihrem bevorzugten Text-Editor zu öffnen, eine schnelle "Speichern unter" Ihrer Datei in den Projektordner Ihrer App zu führen und Ihre neu erstellte Datei zu benennen: SourceAppxContentGroupMap.xml

Wichtig

Wenn Sie eine C++-App entwickeln, müssen Sie die Dateieigenschaften Ihrer SourceAppxContentGroupMap.xmlApp anpassen. Legen Sie die Content Eigenschaft auf "true" und die File Type Eigenschaft auf "XML-Datei" fest.

Wenn Sie die SourceAppxContentGroupMap.xmlDatei erstellen, ist es hilfreich, die Verwendung von Wildcards in Dateinamen zu nutzen, weitere Informationen finden Sie im Abschnitt Tipps und Tricks für die Verwendung von Wildcards.

Wenn Sie Ihre App mithilfe von Visual Studio entwickelt haben, empfiehlt es sich, dies in Ihre erforderliche Inhaltsgruppe aufzunehmen:

<File Name="*"/>
<File Name="WinMetadata\*"/>
<File Name="Properties\*"/>
<File Name="Assets\*Logo*"/>
<File Name="Assets\*SplashScreen*"/>

Das Hinzufügen des einzelnen Wildcarddateinamens enthält Dateien, die aus Visual Studio dem Projektverzeichnis hinzugefügt wurden, z. B. die ausführbare App oder DLLs. Die Ordner "WinMetadata" und "Eigenschaften" müssen die anderen Ordner enthalten, Visual Studio generiert werden. Die Ressourcen-Wildcards sind die Logo- und SplashScreen-Bilder auszuwählen, die für die Installation der App erforderlich sind.

Beachten Sie, dass Sie die doppelte Freihandkarte "**" nicht im Stammverzeichnis der Dateistruktur verwenden können, um jede Datei im Projekt einzuschließen, da dies beim Konvertieren SourceAppxContentGroupMap.xml in das Endgültige AppxContentGroupMap.xmlfehlschlägt.

Es ist auch wichtig zu beachten, dass Speicherbedarfsdateien (AppxManifest.xml, AppxSignature.p7x, resources.pri usw.) nicht in der Inhaltsgruppenzuordnung enthalten sein sollten. Wenn Die Platzhalterdateien in einem der von Ihnen angegebenen Platzhalterdateinamen enthalten sind, werden sie ignoriert.

Automatische Inhaltsgruppen

Automatische Inhaltsgruppen sind die Ressourcen, die im Hintergrund heruntergeladen werden, während der Benutzer mit den bereits heruntergeladenen Inhaltsgruppen interagiert. Diese enthalten zusätzliche Dateien, die zum Starten der App nicht erforderlich sind. Sie können z. B. automatische Inhaltsgruppen auf verschiedenen Ebenen aufteilen und jede Ebene als separate Inhaltsgruppe definieren. Wie im abschnitt für die erforderliche Inhaltsgruppe erwähnt: Aufgrund .NET Native Kompilierung muss der gesamte Code (die ausführbare Anwendung) Teil der erforderlichen Gruppe sein und Ressourcen und andere Dateien für die automatischen Gruppen verlassen.

Sehen wir uns die automatische Inhaltsgruppe aus unserem SourceAppxContentGroupMap.xml Beispiel genauer an:

<Automatic>
    <ContentGroup Name="Level2">
        <File Name="Assets\Level2\*"/>
    </ContentGroup>
    <ContentGroup Name="Level3">
        <File Name="Assets\Level3\*"/>
    </ContentGroup>
</Automatic>

Das Layout der automatischen Gruppe ähnelt ziemlich der erforderlichen Gruppe, mit einigen Ausnahmen:

  • Es gibt mehrere Inhaltsgruppen.
  • Automatische Inhaltsgruppen können eindeutige Namen mit Ausnahme des Namens "Erforderlich" haben, der für die erforderliche Inhaltsgruppe reserviert ist.
  • Automatische Inhaltsgruppen können keine Dateien aus der erforderlichen Inhaltsgruppe enthalten.
  • Eine automatische Inhaltsgruppe kann Dateien enthalten, die sich auch in anderen automatischen Inhaltsgruppen befinden. Die Dateien werden nur einmal heruntergeladen und mit der ersten automatischen Inhaltsgruppe heruntergeladen, die sie enthält.

Tipps und Tricks für die Verwendung von Wildcards

Das Dateilayout für Inhaltsgruppenzuordnungen ist immer relativ zum Projektstammordner.

In unserem Beispiel werden Wildcards in beiden <ContentGroup> Elementen verwendet, um alle Dateien innerhalb einer Dateiebene von "Assets\Level2" oder "Assets\Level3" abzurufen. Wenn Sie eine tiefere Ordnerstruktur verwenden, können Sie die doppelte Wildcard verwenden:

<ContentGroup Name="Level2">
    <File Name="Assets\Level2\**"/>
</ContentGroup>

Sie können auch Wildcards mit Text für Dateinamen verwenden. Wenn Sie beispielsweise jede Datei in Ihren Ordner "Assets" mit einem Dateinamen einschließen möchten, der "Level2" enthält, können Sie etwa folgendes verwenden:

<ContentGroup Name="Level2">
    <File Name="Assets\*Level2*"/>
</ContentGroup>

Konvertieren SourceAppxContentGroupMap.xml in AppxContentGroupMap.xml

Um die SourceAppxContentGroupMap.xml endgültige Version zu konvertieren, AppxContentGroupMap.xmlkönnen Sie Visual Studio 2017 oder das BefehlszeilentoolMakeAppx.exe verwenden.

So konvertieren Sie ihre Inhaltsgruppenzuordnung mithilfe von Visual Studio:

  1. Hinzufügen des SourceAppxContentGroupMap.xml Projektordners
  2. Ändern der Buildaktion der SourceAppxContentGroupMap.xml"AppxSourceContentGroupMap" in der Eigenschaftenfenster
  3. Klicken Sie mit der rechten Maustaste auf das Projekt im Projektmappen-Explorer.
  4. Navigieren Sie zu Store –> Inhaltsgruppenzuordnungsdatei konvertieren

Wenn Sie Ihre App nicht in Visual Studio entwickelt haben, oder wenn Sie einfach die Befehlszeile verwenden möchten, verwenden Sie das toolMakeAppx.exe, um Ihre SourceAppxContentGroupMap.xmlZu konvertieren.

Ein einfacher MakeAppx.exe Befehl sieht wie folgt aus:

MakeAppx convertCGM /s MyApp\SourceAppxContentGroupMap.xml /f MyApp\AppxContentGroupMap.xml /d MyApp\

Die Option /s gibt den Pfad zum Pfad an SourceAppxContentGroupMap.xml, und /f gibt den Pfad zum AppxContentGroupMap.xml. Die endgültige Option /d gibt an, welches Verzeichnis zum Erweitern von Dateinamen-Wildcards verwendet werden soll, in diesem Fall ist es das App-Projektverzeichnis.

Weitere Informationen zu Optionen, die Sie mit MakeAppx.exeverwenden können, öffnen Sie eine Eingabeaufforderung, navigieren Sie zu MakeAppx.exe und geben Sie folgendes ein:

MakeAppx convertCGM /?

Das ist alles, was Sie für AppxContentGroupMap.xml Ihre App benötigen! Es gibt noch mehr zu tun, bevor Ihre App vollständig für die Microsoft Store bereit ist. Weitere Informationen zum Hinzufügen der Streaminginstallation zu Ihrer App finden Sie auf dieser Seite.