Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby przygotować aplikację do instalacji przesyłania strumieniowego, musisz utworzyć mapę grupy zawartości. Ten artykuł pomoże Ci w tworzeniu i konwertowaniu mapy grupy zawartości oraz dostarczy kilku wskazówek i sztuczek.
Tworzenie źródłowej mapy grupy zawartości
Musisz utworzyć SourceAppxContentGroupMap.xml plik, a następnie użyć programu Visual Studio lub narzędzia MakeAppx.exe , aby przekonwertować ten plik na ostateczną wersję: AppxContentGroupMap.xml. Można pominąć krok, tworząc AppxContentGroupMap.xml od podstaw, ale zaleca się (i ogólnie łatwiej) utworzyć SourceAppxContentGroupMap.xml i przekształcić go, ponieważ symbole wieloznaczne nie są dozwolone w AppxContentGroupMap.xml (a są naprawdę użyteczne).
Przejdźmy przez prosty scenariusz, w którym streaming aplikacji jest korzystny.
Załóżmy, że utworzono grę, ale rozmiar ostatecznej aplikacji wynosi ponad 100 GB. To zajmie dużo czasu, aby pobrać ze sklepu Microsoft Store, co może być niewygodne. Jeśli zdecydujesz się korzystać z instalacji aplikacji za pomocą strumieniowania, możesz określić kolejność, w jakiej pliki aplikacji są pobierane. Mówiąc sklepowi, aby najpierw pobrać niezbędne pliki, użytkownik będzie mógł szybciej nawiązać kontakt z aplikacją, podczas gdy inne nieistniejące pliki są pobierane w tle.
Uwaga / Notatka
Korzystanie z instalacji przesyłania strumieniowego aplikacji w dużej mierze zależy od organizacji plików aplikacji. Zaleca się, aby jak najszybciej przemyśleć układ treści swojej aplikacji w kontekście instalacji wykorzystującej strumieniowanie, aby ułatwić segmentację plików aplikacji.
Najpierw utworzymy SourceAppxContentGroupMap.xml plik.
Zanim przejdziemy do szczegółów, oto przykład prostego, kompletnego SourceAppxContentGroupMap.xml pliku:
<?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>
Istnieją dwa główne składniki mapy grupy zawartości: wymagana sekcja zawierająca wymaganą grupę zawartości i automatyczną sekcję, która może zawierać wiele automatycznych grup zawartości.
Wymagana grupa zawartości
Wymagana grupa zawartości jest pojedynczą grupą zawartości w elemencie <Required> elementu SourceAppxContentGroupMap.xml. Wymagana grupa zawartości powinna zawierać wszystkie niezbędne pliki niezbędne do uruchomienia aplikacji z minimalnym środowiskiem użytkownika. Ze względu na kompilację platformy .NET Native cały kod (plik wykonywalny aplikacji) musi być częścią wymaganej grupy, pozostawiając zasoby i inne pliki dla grup automatycznych.
Jeśli na przykład aplikacja jest grą, wymagana grupa może zawierać pliki używane w menu głównym lub na ekranie głównym gry.
Oto fragment kodu z naszego oryginalnego przykładowego SourceAppxContentGroupMap.xml pliku:
<Required>
<ContentGroup Name="Required">
<File Name="StreamingTestApp.exe"/>
</ContentGroup>
</Required>
Istnieje kilka ważnych kwestii, które należy zauważyć tutaj:
- Element
<ContentGroup>w elemecie<Required>musi mieć nazwę "Wymagane". Ta nazwa jest zarezerwowana tylko dla wymaganej grupy zawartości i nie może być używana z żadną inną nazwą<ContentGroup>na ostatecznej mapie grupy zawartości. - Istnieje tylko jeden
<ContentGroup>. Jest to zamierzone, ponieważ powinna istnieć tylko jedna grupa podstawowych plików. - Plik w tym przykładzie jest pojedynczym
.exeplikiem. Wymagana grupa zawartości nie jest ograniczona do jednego pliku. Może istnieć kilka.
Łatwym sposobem na rozpoczęcie pisania tego pliku jest otwarcie nowej strony w ulubionym edytorze tekstów, szybkie "Zapisz jako" pliku w folderze projektu aplikacji i nadaj nowo utworzonemu plikowi nazwę: SourceAppxContentGroupMap.xml.
Ważne
Jeśli tworzysz aplikację w języku C++, musisz dostosować właściwości pliku SourceAppxContentGroupMap.xml.
Content Ustaw właściwość na true, a File Type właściwość na Plik XML.
Podczas tworzenia elementu SourceAppxContentGroupMap.xmlwarto skorzystać z symboli wieloznacznych w nazwach plików, aby uzyskać więcej informacji, zobacz sekcję Porady i wskazówki dotyczące używania symboli wieloznacznych .
Jeśli aplikacja jest opracowywana przy użyciu programu Visual Studio, zaleca się uwzględnienie jej w wymaganej grupie zawartości:
<File Name="*"/>
<File Name="WinMetadata\*"/>
<File Name="Properties\*"/>
<File Name="Assets\*Logo*"/>
<File Name="Assets\*SplashScreen*"/>
Dodanie pojedynczej nazwy pliku z symbolem wieloznacznym umożliwi uwzględnienie plików dodanych do katalogu projektu w programie Visual Studio, jak na przykład pliku wykonywalnego aplikacji lub bibliotek DLL. Foldery WinMetadata i Properties mają zawierać inne foldery generowane przez program Visual Studio. Karty wieloznaczne Elementów służą do wyboru obrazów logo oraz ekranu startowego, które są niezbędne do zainstalowania aplikacji.
Należy pamiętać, że nie można użyć podwójnej wieloznacznej karty „**” w katalogu głównym struktury plików, aby uwzględnić każdy plik w projekcie, gdyż to się nie uda przy próbie przekonwertowania SourceAppxContentGroupMap.xml na końcowy AppxContentGroupMap.xml.
Należy również pamiętać, że pliki śladu (AppxManifest.xml, AppxSignature.p7x, resources.pri itp.) nie powinny być uwzględniane na mapie grup zawartości. Jeśli pliki śladu znajdują się w jednej z określonych nazw plików wieloznacznych, zostaną one zignorowane.
Automatyczne grupy zawartości
Automatyczne grupy zawartości to zasoby, które są pobierane w tle, podczas gdy użytkownik wchodzi w interakcję z już pobranymi grupami zawartości. Zawierają one wszelkie dodatkowe pliki, które nie są niezbędne do uruchomienia aplikacji. Można na przykład podzielić automatyczne grupy zawartości na różne poziomy, definiując każdy poziom jako oddzielną grupę zawartości. Jak wspomniano w sekcji wymaganej grupy zawartości: ze względu na kompilację platformy .NET Native cały kod (plik wykonywalny aplikacji) musi być częścią wymaganej grupy, pozostawiając zasoby i inne pliki dla grup automatycznych.
Przyjrzyjmy się bliżej automatycznej grupie zawartości z naszego SourceAppxContentGroupMap.xml przykładu:
<Automatic>
<ContentGroup Name="Level2">
<File Name="Assets\Level2\*"/>
</ContentGroup>
<ContentGroup Name="Level3">
<File Name="Assets\Level3\*"/>
</ContentGroup>
</Automatic>
Układ grupy automatycznej jest dość podobny do wymaganej grupy z kilkoma wyjątkami:
- Istnieje wiele grup zawartości.
- Automatyczne grupy zawartości mogą mieć unikatowe nazwy z wyjątkiem nazwy "Wymagane", która jest zarezerwowana dla wymaganej grupy zawartości.
- Automatyczne grupy zawartości nie mogą zawierać żadnych plików z wymaganej grupy zawartości.
- Automatyczna grupa zawartości może zawierać pliki, które znajdują się również w innych grupach zawartości automatycznej. Pliki zostaną pobrane tylko raz i zostaną pobrane z pierwszą automatyczną grupą zawartości, która je zawiera.
Porady i wskazówki dotyczące używania symboli wieloznacznych
Układ plików map grup zawartości jest zawsze powiązany z folderem głównym projektu.
W naszym przykładzie symbole wieloznaczne są używane w obu <ContentGroup> elementach do pobierania wszystkich plików na jednym poziomie folderu "Assets\Level2" lub "Assets\Level3". Jeśli używasz bardziej złożonej struktury folderów, możesz użyć podwójnego symbolu wieloznacznego:
<ContentGroup Name="Level2">
<File Name="Assets\Level2\**"/>
</ContentGroup>
Można również używać symboli wieloznacznych z tekstem dla nazw plików. Jeśli na przykład chcesz uwzględnić każdy plik w folderze "Assets" o nazwie pliku zawierającej ciąg "Level2", możesz użyć następującego polecenia:
<ContentGroup Name="Level2">
<File Name="Assets\*Level2*"/>
</ContentGroup>
Konwertowanie SourceAppxContentGroupMap.xml na AppxContentGroupMap.xml
Aby przekonwertować SourceAppxContentGroupMap.xml na ostateczną wersję AppxContentGroupMap.xml, możesz użyć programu Visual Studio 2017 lub narzędzia MakeAppx.exe wiersza polecenia.
Aby przekonwertować mapę grupy zawartości przy użyciu programu Visual Studio:
- Dodaj element
SourceAppxContentGroupMap.xmldo folderu projektu - Zmień akcję kompilacji elementu
SourceAppxContentGroupMap.xmlna "AppxSourceContentGroupMap" w oknie Właściwości - Kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań
- Przejdź do Sklepu —> Konwertuj plik mapy grupy zawartości
Jeśli nie utworzono aplikacji w programie Visual Studio lub jeśli wolisz używać wiersza polecenia, użyj narzędzia MakeAppx.exe , aby przekonwertować plik SourceAppxContentGroupMap.xml.
Proste polecenie MakeAppx.exe może wyglądać mniej więcej tak:
MakeAppx convertCGM /s MyApp\SourceAppxContentGroupMap.xml /f MyApp\AppxContentGroupMap.xml /d MyApp\
/s opcja określa ścieżkę do SourceAppxContentGroupMap.xml, i /f określa ścieżkę do AppxContentGroupMap.xml. Ostateczna opcja / d określa, który katalog powinien być używany do rozszerzania nazw plików symboli wieloznacznych, w tym przypadku jest to katalog projektu aplikacji.
Aby uzyskać więcej informacji na temat opcji, których można użyć z MakeAppx.exe, otwórz wiersz polecenia, przejdź do MakeAppx.exe i wprowadź:
MakeAppx convertCGM /?
To wszystko, czego potrzebujesz, aby mieć gotowy ostateczny AppxContentGroupMap.xml do swojej aplikacji! Jeszcze więcej do zrobienia, zanim aplikacja będzie w pełni gotowa do sklepu Microsoft Store. Aby uzyskać więcej informacji na temat dodawania instalacji przesyłania strumieniowego do aplikacji, zapoznaj się z tą stroną.