Membuat dan mengonversi peta grup konten sumber

Untuk menyiapkan aplikasi Anda untuk penginstalan streaming, Anda harus membuat peta grup konten. Artikel ini akan membantu Anda dengan spesifikasi membuat dan mengonversi peta grup konten sambil memberikan beberapa tips dan trik di sepanjang jalan.

Membuat peta grup konten sumber

Anda harus membuat SourceAppxContentGroupMap.xml file, lalu menggunakan Visual Studio atau alat MakeAppx.exe untuk mengonversi file ini ke versi akhir: AppxContentGroupMap.xml. Dimungkinkan untuk melewati langkah dengan membuat AppxContentGroupMap.xml dari awal, tetapi disarankan (dan umumnya lebih mudah) untuk membuat SourceAppxContentGroupMap.xml dan mengonversinya, karena wildcard tidak diizinkan di AppxContentGroupMap.xml (dan mereka benar-benar membantu).

Mari kita telusuri skenario sederhana di mana penginstalan streaming aplikasi bermanfaat.

Katakanlah Anda telah membuat game, tetapi ukuran aplikasi akhir Anda lebih dari 100 GB. Itu akan memakan waktu lama untuk mengunduh dari Microsoft Store, yang bisa meremajakan. Jika Anda memilih untuk menggunakan penginstalan streaming aplikasi, Anda dapat menentukan urutan pengunduhan file aplikasi Anda. Dengan memberi tahu Store untuk mengunduh file penting terlebih dahulu, pengguna akan dapat berinteraksi dengan aplikasi Anda lebih cepat sementara file non-esensial lainnya diunduh di latar belakang.

Catatan

Menggunakan penginstalan streaming aplikasi sangat bergantung pada organisasi file aplikasi Anda. Disarankan agar Anda memikirkan tata letak konten aplikasi sehubungan dengan penginstalan streaming aplikasi sesegera mungkin untuk membuat segmentasi file aplikasi Anda lebih sederhana.

Pertama, kita akan membuat SourceAppxContentGroupMap.xml file.

Sebelum kita masuk ke detailnya, berikut adalah contoh file sederhana dan lengkap SourceAppxContentGroupMap.xml :

<?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>

Ada dua komponen utama ke peta grup konten: bagian yang diperlukan , yang berisi grup konten yang diperlukan, dan bagian otomatis , yang dapat berisi beberapa grup konten otomatis.

Grup konten yang diperlukan

Grup konten yang diperlukan adalah grup konten tunggal dalam <Required> elemen SourceAppxContentGroupMap.xml. Grup konten yang diperlukan harus berisi semua file penting yang diperlukan untuk meluncurkan aplikasi dengan pengalaman pengguna minimal. Karena kompilasi .NET Native, semua kode (aplikasi yang dapat dieksekusi) harus menjadi bagian dari grup yang diperlukan, meninggalkan aset dan file lain untuk grup otomatis.

Misalnya, jika aplikasi Anda adalah game, grup yang diperlukan dapat menyertakan file yang digunakan di menu utama atau layar beranda game.

Berikut adalah cuplikan dari file contoh asli SourceAppxContentGroupMap.xml kami:

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

Ada beberapa hal penting yang perlu diperhatikan di sini:

  • <Required> Dalam <ContentGroup> elemen harus diberi nama "Wajib." Nama ini dicadangkan hanya untuk grup konten yang diperlukan, dan tidak dapat digunakan dengan yang lain <ContentGroup> di peta grup konten akhir.
  • Hanya ada satu <ContentGroup>. Ini disengaja, karena seharusnya hanya ada satu grup file penting.
  • File dalam contoh ini adalah satu .exe file. Grup konten yang diperlukan tidak dibatasi untuk satu file, mungkin ada beberapa.

Cara mudah untuk mulai menulis file ini adalah dengan membuka halaman baru di editor teks favorit Anda, melakukan "Simpan Sebagai" cepat dari file Anda ke folder proyek aplikasi Anda, dan beri nama file yang baru Dibuat: SourceAppxContentGroupMap.xml.

Penting

Jika Anda mengembangkan aplikasi C++, Anda harus menyesuaikan properti file Anda SourceAppxContentGroupMap.xml. Atur Content properti ke true dan properti ke File TypeFile XML.

Saat Anda membuat SourceAppxContentGroupMap.xml, sangat membantu untuk memanfaatkan penggunaan kartubebas dalam nama file, untuk informasi selengkapnya, lihat bagian Tips dan trik untuk menggunakan kartubebas .

Jika Anda mengembangkan aplikasi menggunakan Visual Studio, disarankan agar Anda menyertakannya dalam grup konten yang diperlukan:

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

Menambahkan nama file kartubebas tunggal akan menyertakan file yang ditambahkan ke direktori proyek dari Visual Studio, seperti aplikasi yang dapat dieksekusi atau DLL. Folder WinMetadata dan Properti adalah menyertakan folder lain yang dihasilkan Visual Studio. Wildcard Aset adalah memilih gambar Logo dan SplashScreen yang diperlukan agar aplikasi diinstal.

Perhatikan bahwa Anda tidak dapat menggunakan kartubebas ganda, "**", di akar struktur file untuk menyertakan setiap file dalam proyek karena ini akan gagal saat mencoba mengonversi SourceAppxContentGroupMap.xml ke final AppxContentGroupMap.xml.

Penting juga untuk dicatat bahwa file jejak (AppxManifest.xml, AppxSignature.p7x, resources.pri, dll.) tidak boleh disertakan dalam peta grup konten. Jika file jejak disertakan dalam salah satu nama file kartubebas yang Anda tentukan, file tersebut akan diabaikan.

Grup konten otomatis

Grup konten otomatis adalah aset yang diunduh di latar belakang saat pengguna berinteraksi dengan grup konten yang sudah diunduh. Ini berisi file tambahan yang tidak penting untuk meluncurkan aplikasi. Misalnya, Anda dapat memecah grup konten otomatis ke tingkat yang berbeda, menentukan setiap tingkat sebagai grup konten terpisah. Seperti yang disebutkan di bagian grup konten yang diperlukan: karena kompilasi .NET Native, semua kode (dapat dieksekusi aplikasi) harus menjadi bagian dari grup yang diperlukan, meninggalkan aset dan file lain untuk grup otomatis.

Mari kita lihat lebih dekat grup konten otomatis dari contoh kami SourceAppxContentGroupMap.xml :

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

Tata letak grup otomatis sangat mirip dengan grup yang diperlukan, dengan beberapa pengecualian:

  • Ada beberapa grup konten.
  • Grup konten otomatis dapat memiliki nama unik kecuali untuk nama "Wajib" yang dicadangkan untuk grup konten yang diperlukan.
  • Grup konten otomatis tidak boleh berisi file apa pun dari grup konten yang diperlukan.
  • Grup konten otomatis dapat berisi file yang juga berada di grup konten otomatis lainnya. File hanya akan diunduh sekali, dan akan diunduh dengan grup konten otomatis pertama yang berisinya.

Tips dan trik untuk menggunakan kartubebas

Tata letak file untuk peta grup konten selalu relatif terhadap folder akar proyek Anda.

Dalam contoh kami, wildcard digunakan dalam kedua <ContentGroup> elemen untuk mengambil semua file dalam satu tingkat file "Aset\Level2" atau "Aset\Level3." Jika Anda menggunakan struktur folder yang lebih dalam, Anda dapat menggunakan kartubebas ganda:

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

Anda juga dapat menggunakan kartubebas dengan teks untuk nama file. Misalnya, jika Anda ingin menyertakan setiap file di folder "Aset" Anda dengan nama file yang berisi "Level2" Anda dapat menggunakan sesuatu seperti ini:

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

Mengonversi SourceAppxContentGroupMap.xml ke AppxContentGroupMap.xml

Untuk mengonversi SourceAppxContentGroupMap.xml ke versi akhir, AppxContentGroupMap.xml, Anda dapat menggunakan Visual Studio 2017 atau alat baris perintah MakeAppx.exe .

Untuk menggunakan Visual Studio untuk mengonversi peta grup konten Anda:

  1. Menambahkan ke SourceAppxContentGroupMap.xml folder proyek Anda
  2. Ubah Tindakan Build menjadi SourceAppxContentGroupMap.xml"AppxSourceContentGroupMap" di jendela Properti
  3. Klik kanan proyek di penjelajah solusi
  4. Menavigasi ke Penyimpanan -> Mengonversi File Peta Grup Konten

Jika Anda tidak mengembangkan aplikasi di Visual Studio, atau jika Anda hanya lebih suka menggunakan baris perintah, gunakan alat MakeAppx.exe untuk mengonversi .SourceAppxContentGroupMap.xml

Perintah MakeAppx.exe sederhana mungkin terlihat seperti ini:

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

Opsi /s menentukan jalur ke SourceAppxContentGroupMap.xml, dan /f menentukan jalur ke AppxContentGroupMap.xml. Opsi akhir, /d, menentukan direktori mana yang harus digunakan untuk memperluas kartubebas nama file, dalam hal ini, itu adalah direktori proyek aplikasi.

Untuk informasi selengkapnya tentang opsi yang dapat Anda gunakan dengan MakeAppx.exe, buka prompt perintah, navigasikan ke MakeAppx.exe dan masukkan:

MakeAppx convertCGM /?

Itu saja yang Anda butuhkan untuk menyiapkan akhir AppxContentGroupMap.xml untuk aplikasi Anda! Masih ada lebih banyak yang harus dilakukan sebelum aplikasi Anda sepenuhnya siap untuk Microsoft Store. Untuk informasi selengkapnya tentang menambahkan penginstalan streaming ke aplikasi Anda, lihat halaman ini.