Freigeben über


Erstellen und Konvertieren einer Quellinhaltsgruppenzuordnung

Um Ihre App für die Streaminginstallation vorzubereiten, müssen Sie eine Inhaltsgruppenzuordnung erstellen. Dieser Artikel wird Ihnen die Besonderheiten der Erstellung und Umwandlung einer Inhaltsgruppe erläutern und Ihnen dabei hilfreiche Tipps und Tricks an die Hand geben.

Erstellen der Quellinhaltsgruppenzuordnung

Sie müssen eine SourceAppxContentGroupMap.xml Datei erstellen und dann 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 man das AppxContentGroupMap.xml von Grund auf neu erstellt, aber es wird empfohlen (und ist im Allgemeinen einfacher), das SourceAppxContentGroupMap.xml zu erstellen und zu konvertieren, da keine Wildcards im AppxContentGroupMap.xml erlaubt sind (und sie wirklich hilfreich sind).

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

Angenommen, Sie haben ein Spiel erstellt, aber die Größe Ihrer endgültigen App beträgt über 100 GB. Das Herunterladen aus dem Microsoft Store wird lange dauern, was unangenehm sein kann. Wenn Sie die App-Streaminginstallation verwenden, können Sie die Reihenfolge angeben, in der die Dateien Ihrer App heruntergeladen werden. Indem der Store zunächst angibt, 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 in Bezug auf die App-Streaminginstallation so schnell wie möglich zu berücksichtigen, um das Segmentieren der App-Dateien zu vereinfachen.

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 der .NET Native-Kompilierung muss der gesamte Code (die ausführbare Anwendung) Teil der erforderlichen Gruppe sein, während Ressourcen und andere Dateien den automatischen Gruppen zugeordnet werden.

Wenn Ihre App beispielsweise ein Spiel ist, kann die erforderliche Gruppe Dateien enthalten, die im Hauptmenü oder auf dem 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> Element innerhalb des <Required> Elements muss den Namen "Erforderlich" haben. 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 wesentlichen 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, mit dem Schreiben dieser Datei zu beginnen, besteht darin, eine neue Seite in Ihrem bevorzugten Text-Editor zu öffnen, eine schnelle "Speichern unter" Ihrer Datei im Projektordner Ihrer App zu erstellen und die neu erstellte Datei zu benennen: SourceAppxContentGroupMap.xml

Von Bedeutung

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 das SourceAppxContentGroupMap.xml erstellen, ist es hilfreich, Wildcards in Dateinamen zu verwenden, weitere Informationen finden Sie im Abschnitt Tipps und Tricks für die Verwendung von Wildcards.

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

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

Das Hinzufügen eines einzelnen Wildcard-Dateinamens schließt Dateien ein, die aus Visual Studio dem Projektverzeichnis hinzugefügt werden, z. B. die ausführbare App oder DLLs. Die Ordner "WinMetadata" und "Eigenschaften" enthalten die anderen Ordner, die von Visual Studio generiert werden. Die Ressourcen-Wildcards sind das Auswählen der Logo- und SplashScreen-Bilder, die für die Installation der App erforderlich sind.

Beachten Sie, dass Sie die doppelte Wildcard "**" nicht am Stamm der Dateistruktur verwenden können, um jede Datei im Projekt einzuschließen, da dies fehlschlägt, wenn Sie versuchen, SourceAppxContentGroupMap.xml in das endgültige AppxContentGroupMap.xml zu konvertieren.

Es ist auch wichtig zu beachten, dass Abbilddateien (AppxManifest.xml, AppxSignature.p7x, resources.pri usw.) nicht in die Inhaltgruppenkarte aufgenommen werden sollten. Wenn Footprint-Dateien in einem der von Ihnen angegebenen Platzhalternamen 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 alle zusätzlichen Dateien, die für das Starten der App nicht unbedingt erforderlich sind. So könnten Sie beispielsweise automatische Inhaltsgruppen auf unterschiedlichen Ebenen aufteilen und jede Ebene als separate Inhaltsgruppe definieren. Wie im abschnitt "Erforderliche Inhaltsgruppe" erwähnt: Aufgrund der .NET Native-Kompilierung muss der gesamte Code (die ausführbare Anwendung) Teil der erforderlichen Gruppe sein, wobei Ressourcen und andere Dateien für die automatischen Gruppen verbleiben.

Werfen wir einen genaueren Blick auf die automatische Inhaltsgruppe aus unserem SourceAppxContentGroupMap.xml Beispiel:

<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 haben, mit Ausnahme des Namens "Erforderlich", der für die erforderliche Inhaltsgruppe reserviert ist.
  • Automatische Inhaltsgruppen dürfen 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 Projekt-Root-Ordner.

In unserem Beispiel werden In beiden <ContentGroup> Elementen Wildcards verwendet, um alle Dateien auf 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 Den 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 von SourceAppxContentGroupMap.xml in AppxContentGroupMap.xml

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

So konvertieren Sie ihre Inhaltsgruppenzuordnung mithilfe von Visual Studio:

  1. Fügen Sie SourceAppxContentGroupMap.xml zu Ihrem Projektordner hinzu
  2. Ändern Sie die Buildaktion des SourceAppxContentGroupMap.xml auf "AppxSourceContentGroupMap" im Eigenschaftenfenster.
  3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt.
  4. Zum Store navigieren –> Inhaltsgruppen-Zuordnungsdatei konvertieren

Wenn Sie Ihre App nicht in Visual Studio entwickelt haben oder die Befehlszeile lieber verwenden, verwenden Sie das MakeAppx.exe Tool, um Ihre SourceAppxContentGroupMap.xmlApp zu konvertieren.

Ein einfacher MakeAppx.exe Befehl könnte etwa wie folgt aussehen:

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

Die /s-Option gibt den Pfad zu dem SourceAppxContentGroupMap.xml, und /f gibt den Pfad zum AppxContentGroupMap.xml. Die letzte 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 brauchen, um Ihr finales AppxContentGroupMap.xml für Ihre App bereit zu machen! Es gibt noch mehr zu tun, bevor Ihre App vollständig für den Microsoft Store bereit ist. Weitere Informationen zum Hinzufügen der Streaminginstallation zu Ihrer App finden Sie auf dieser Seite.