Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ahhoz, hogy az alkalmazás készen álljon a streamelés telepítésére, létre kell hoznia egy tartalomcsoport-térképet. Ez a cikk segítséget nyújt a tartalomcsoport-térkép létrehozásának és átalakításának jellemzőiben, miközben tippeket és trükköket nyújt az út során.
A forrás tartalomcsoport térképének létrehozása
Létre kell hoznia egy SourceAppxContentGroupMap.xml fájlt, majd a Visual Studio vagy a MakeAppx.exe eszközzel konvertálhatja a fájlt a végleges verzióra: AppxContentGroupMap.xml. A AppxContentGroupMap.xml a semmiből való létrehozásával kihagyhat egy lépést, de ajánlott (és általában egyszerűbb) a SourceAppxContentGroupMap.xml létrehozása és annak átalakítása, mivel a helyettesítő karakterek nem engedélyezettek a AppxContentGroupMap.xml (és ezek nagyon hasznosak).
Tekintsünk át egy egyszerű forgatókönyvet, amelyben az alkalmazásstreamelés telepítése előnyös.
Tegyük fel, hogy létrehozott egy játékot, de a végső alkalmazás mérete meghaladja a 100 GB-ot. Ez hosszú időt vesz igénybe a Microsoft Store-ból való letöltéshez, ami kényelmetlen lehet. Ha az alkalmazásstreamelési telepítést választja, megadhatja, hogy milyen sorrendben töltse le az alkalmazás fájljait. Ha azt mondja az Áruháznak, hogy először töltse le az alapvető fájlokat, a felhasználó hamarabb kapcsolatba léphet az alkalmazással, míg a háttérben más nem alapvető fájlok lesznek letöltve.
Megjegyzés:
Az alkalmazás streamelés alapú telepítése nagymértékben támaszkodik az alkalmazás fájlszervezetére. Javasoljuk, hogy a lehető leghamarabb gondolja át az alkalmazás tartalomelrendezését az alkalmazásstreamelés telepítésével kapcsolatban, hogy egyszerűbbé tegye az alkalmazás fájljainak szegmentálását.
Először létrehozunk egy SourceAppxContentGroupMap.xml fájlt.
Mielőtt megismerkednénk a részletekkel, íme egy példa egy egyszerű, teljes SourceAppxContentGroupMap.xml fájlra:
<?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>
A tartalomcsoport-leképezésnek két fő összetevője van: a szükséges szakasz, amely tartalmazza a szükséges tartalomcsoportot, valamint az automatikus szakasz, amely több automatikus tartalomcsoportot is tartalmazhat.
Kötelező tartalomcsoport
A szükséges tartalomcsoport a <Required>SourceAppxContentGroupMap.xml elemének egyetlen tartalomcsoportja. A szükséges tartalomcsoportnak tartalmaznia kell az alkalmazás minimális felhasználói élményt igénylő elindításához szükséges összes alapvető fájlt. A .NET natív fordítása miatt az összes kódnak (az alkalmazás végrehajtható állománynak) a szükséges csoport részét kell képeznie, míg az automatikus csoportok számára a különféle objektumok és más fájlok maradnak fenn.
Ha például az alkalmazás egy játék, a szükséges csoport tartalmazhat a főmenüben vagy a játék kezdőképernyőjén használt fájlokat.
Az eredeti SourceAppxContentGroupMap.xml példafájl kódrészlete:
<Required>
<ContentGroup Name="Required">
<File Name="StreamingTestApp.exe"/>
</ContentGroup>
</Required>
Itt néhány fontos dolgot kell megfigyelni:
- Az
<ContentGroup>elemen belül a<Required>"Kötelező" nevet kell megadni. Ez a név csak a szükséges tartalomcsoport számára van fenntartva, és nem használható másokkal<ContentGroup>a végleges tartalomcsoport-leképezésben. - Csak egy
<ContentGroup>van. Ez szándékos, mivel csak egy alapvető fájlcsoportnak kell lennie. - A példában szereplő fájl egyetlen
.exefájl. A szükséges tartalomcsoportok nem korlátozódnak egyetlen fájlra, több is lehet.
A fájl írásának megkezdéséhez egyszerűen megnyithat egy új lapot a kedvenc szövegszerkesztőjében, gyorsan mentheti a fájlt az alkalmazás projektmappájába, és elnevezheti az újonnan létrehozott fájlt: SourceAppxContentGroupMap.xml.
Fontos
Ha C++ alkalmazást fejleszt, módosítania kell a fájl tulajdonságait SourceAppxContentGroupMap.xml. Állítsa a Content tulajdonságot Igaz értékre, a File Type tulajdonságot XML-fájlra.
Amikor létrehozza a fájlt, hasznos lehet kihasználni a SourceAppxContentGroupMap.xmlhelyettesítő karakterek fájlnevekben való használatát. További információért tekintse meg a helyettesítő karakterek használatára vonatkozó tippeket és trükköket .
Ha az alkalmazást a Visual Studióval fejlesztette, javasoljuk, hogy vegye fel ezt a szükséges tartalomcsoportba:
<File Name="*"/>
<File Name="WinMetadata\*"/>
<File Name="Properties\*"/>
<File Name="Assets\*Logo*"/>
<File Name="Assets\*SplashScreen*"/>
Az egyetlen helyettesítő karakteres fájlnév hozzáadása magában foglalja a Visual Studióból a projektkönyvtárba felvett fájlokat, például az alkalmazás végrehajtható fájljait vagy DLL-jeit. A WinMetadata és a Tulajdonságok mappának tartalmaznia kell a Visual Studio által létrehozott többi mappát. Az Elemek joker karakterei jelölik ki az alkalmazás telepítéséhez szükséges emblémát és SplashScreen képeket.
Vegye figyelembe, hogy a fájlstruktúra gyökerében a "**" dupla helyettesítő karakter nem használható a projekt minden fájljának belefoglalásához, mivel ez sikertelen lesz, amikor megpróbálja SourceAppxContentGroupMap.xml végleges AppxContentGroupMap.xml-ré konvertálni.
Azt is fontos megjegyezni, hogy a tartalomcsoport-térkép nem tartalmazhatja a lábnyomfájlokat (AppxManifest.xml, AppxSignature.p7x, resources.pri stb.). Ha a lábnyomfájlokat a megadott helyettesítő karakterek egyikének neve tartalmazza, a rendszer figyelmen kívül hagyja őket.
Automatikus tartalomcsoportok
Az automatikus tartalomcsoportok azok az eszközök, amelyek a háttérben töltődnek le, miközben a felhasználó a már letöltött tartalomcsoportokkal kommunikál. Ezek olyan további fájlokat tartalmaznak, amelyek nem nélkülözhetetlenek az alkalmazás elindításához. Az automatikus tartalomcsoportokat például különböző szintekre bonthatja, és mindegyik szintet külön tartalomcsoportként definiálhatja. Ahogy a szükséges tartalomcsoport szakaszban is látható: a .NET natív fordítása miatt az összes kódnak (a végrehajtható alkalmazásnak) a szükséges csoport része kell lennie, így az automatikus csoportok objektumai és egyéb fájljai megmaradnak.
Nézzük meg közelebbről az automatikus tartalomcsoportot a példánkból SourceAppxContentGroupMap.xml :
<Automatic>
<ContentGroup Name="Level2">
<File Name="Assets\Level2\*"/>
</ContentGroup>
<ContentGroup Name="Level3">
<File Name="Assets\Level3\*"/>
</ContentGroup>
</Automatic>
Az automatikus csoport elrendezése nagyon hasonlít a szükséges csoporthoz, néhány kivétellel:
- Több tartalomcsoport is létezik.
- Az automatikus tartalomcsoportok egyedi névvel rendelkezhetnek, kivéve a "Kötelező" nevet, amely a szükséges tartalomcsoport számára van fenntartva.
- Az automatikus tartalomcsoportok nem tartalmazhatnak a szükséges tartalomcsoportból származó fájlokat.
- Az automatikus tartalomcsoportok tartalmazhatnak más automatikus tartalomcsoportokban is található fájlokat. A fájlok csak egyszer lesznek letöltve, és az első automatikus tartalomcsoporttal lesznek letöltve, amely tartalmazza őket.
Tippek és trükkök helyettesítő karakterek használatához
A tartalomcsoportok térképeinek fájlelrendezése mindig a projekt gyökérmappájához viszonyítva van megadva.
A példánkban a helyettesítő karakterek mindkét <ContentGroup> elemen belül az "Assets\Level2" vagy az "Assets\Level3" fájlszinten belüli összes fájl lekérésére szolgálnak. Ha mélyebb mappastruktúrát használ, használhatja a kettős helyettesítő karaktert:
<ContentGroup Name="Level2">
<File Name="Assets\Level2\**"/>
</ContentGroup>
Helyettesítő karaktereket is használhat fájlnevek szövegének. Ha például minden fájlt fel szeretne venni az "Assets" mappába egy "Level2" nevű fájlnévvel, használhatja az alábbihoz hasonlót:
<ContentGroup Name="Level2">
<File Name="Assets\*Level2*"/>
</ContentGroup>
SourceAppxContentGroupMap.xml átalakítása AppxContentGroupMap.xml
A végleges verzióra SourceAppxContentGroupMap.xmlvaló konvertáláshoz használhatja a AppxContentGroupMap.xml Visual Studio 2017-et vagy a MakeAppx.exe parancssori eszközt.
A Visual Studio használata a tartalomcsoport-térkép konvertálásához:
- Adja hozzá a
SourceAppxContentGroupMap.xmlprojektmappához - Módosítsa a
SourceAppxContentGroupMap.xmlBuild-műveletét "AppxSourceContentGroupMap"-ra a Tulajdonságok ablakban - Kattintson a jobb gombbal a projektre a megoldáskezelőben
- Navigálás az Áruházba –> Tartalomcsoport-leképezési fájl konvertálása
Ha nem a Visual Studióban fejlesztette ki az alkalmazást, vagy csak a parancssort szeretné használni, használja a MakeAppx.exe eszközt a SourceAppxContentGroupMap.xmlkonvertáláshoz.
Egy egyszerű MakeAppx.exe parancs a következőképpen nézhet ki:
MakeAppx convertCGM /s MyApp\SourceAppxContentGroupMap.xml /f MyApp\AppxContentGroupMap.xml /d MyApp\
A /s beállítás megadja a elérési utat, SourceAppxContentGroupMap.xmla /f pedig a AppxContentGroupMap.xmlelérési utat. A /d végső beállítás megadja, hogy melyik könyvtárat kell használni a fájlnév helyettesítő karaktereinek kibontásához, ebben az esetben ez az alkalmazásprojekt könyvtára.
A MakeAppx.exe használható beállításokkal kapcsolatos további információkért nyisson meg egy parancssort, lépjen a MakeAppx.exe mappába, és írja be a következőt:
MakeAppx convertCGM /?
Csak ennyi kell, hogy a végső AppxContentGroupMap.xml készen álljon az alkalmazásodhoz! Még sok teendője van, mielőtt az alkalmazás teljesen készen áll a Microsoft Store-ra. Ha további információt szeretne a streamelési telepítés alkalmazáshoz való hozzáadásáról, tekintse meg ezt a lapot.