Pengantar paket aset

Penting

Jika Anda ingin mengirimkan aplikasi ke Store, Anda perlu menghubungi dukungan pengembang Windows dan mendapatkan persetujuan untuk menggunakan paket aset.

Paket aset adalah jenis paket yang bertindak sebagai lokasi terpusat untuk file umum aplikasi - secara efektif menghilangkan kebutuhan untuk file duplikat di seluruh paket arsitekturnya. Paket aset mirip dengan paket sumber daya karena keduanya dirancang untuk berisi konten statis yang diperlukan agar aplikasi Anda berjalan, tetapi berbeda karena semua paket aset selalu diunduh, terlepas dari arsitektur sistem, bahasa, atau skala tampilan pengguna.

Asset Package Bundle Diagram

Karena paket aset berisi semua arsitektur, bahasa, dan file agnostik skala, memanfaatkan paket aset menghasilkan pengurangan ukuran aplikasi yang dikemas secara keseluruhan (karena file-file ini tidak lagi diduplikasi), membantu Anda mengelola penggunaan ruang disk pengembangan lokal untuk aplikasi besar dan mengelola paket aplikasi Anda secara umum.

Bagaimana paket aset memengaruhi penerbitan?

Manfaat paket aset yang paling jelas adalah berkurangnya ukuran aplikasi paket. Paket aplikasi yang lebih kecil mempercepat proses penerbitan aplikasi dengan membiarkan penyimpanan memproses lebih sedikit file; namun ini bukan manfaat terpenting dari paket aset.

Saat paket aset dibuat, Anda dapat menentukan apakah paket harus diizinkan untuk dijalankan. Karena paket aset hanya boleh berisi file agnostik arsitektur, paket tersebut umumnya tidak berisi file .dll atau .exe, jadi untuk paket aset biasanya tidak perlu dijalankan. Pentingnya perbedaan ini adalah bahwa selama proses penerbitan, semua paket yang dapat dieksekusi harus dipindai untuk memastikan bahwa paket tersebut tidak berisi malware, dan proses pemindaian ini membutuhkan waktu lebih lama untuk paket yang lebih besar. Namun, jika paket ditetapkan sebagai tidak dapat dieksekusi, penginstalan aplikasi akan memastikan bahwa file yang terkandung dalam paket ini tidak dapat dijalankan. Jaminan ini menghilangkan kebutuhan akan pemindaian paket lengkap dan akan sangat mengurangi waktu pemindaian malware selama publikasi aplikasi (dan untuk pembaruan juga) - sehingga membuat penerbitan secara signifikan lebih cepat untuk aplikasi yang menggunakan paket aset. Perhatikan bahwa paket aplikasi bundel datar juga harus digunakan untuk mendapatkan manfaat penerbitan ini karena inilah yang memungkinkan Store memproses setiap file paket .appx atau .msix secara paralel.

Haruskah saya menggunakan paket aset?

Memperbarui struktur file aplikasi Anda untuk memanfaatkan penggunaan paket aset dapat menghasilkan manfaat nyata: pengurangan ukuran paket dan iterasi pengembangan yang lebih ramping. Jika semua paket arsitektur Anda berisi sejumlah besar file yang sama atau jika sebagian besar aplikasi Anda terdiri dari file yang tidak dijalankan, sangat disarankan agar Anda menginvestasikan waktu tambahan untuk mengonversi ke menggunakan paket aset.

Namun, perlu diingat bahwa paket aset bukan sarana untuk mencapai opsionalitas konten aplikasi. File paket aset bersifat non-opsional dan akan selalu diunduh terlepas dari arsitektur, bahasa, atau skala perangkat target - konten opsional apa pun yang Anda inginkan untuk didukung aplikasi Anda harus diimplementasikan menggunakan paket opsional.

Cara membuat paket aset

Cara termudah untuk membuat paket aset adalah menggunakan tata letak kemasan. Namun, paket aset juga dapat dibuat secara manual menggunakan MakeAppx.exe. Untuk menentukan file mana yang akan disertakan dalam paket aset, Anda harus membuat "file pemetaan". Dalam contoh ini, satu-satunya file dalam paket aset adalah "Video.mp4", tetapi semua file paket aset harus tercantum di sini. Perhatikan bahwa penentu ResourceDimensions di ResourceMetadata dihilangkan untuk paket aset (dibandingkan dengan file pemetaan untuk paket sumber daya).

[ResourceMetadata]
"ResourceId"        "Videos"

[Files]
"Video.mp4"         "Video.mp4"

Gunakan salah satu perintah ini untuk membuat paket aset menggunakan MakeAppx.exe (untuk MSIX dan .appx).

MakeAppx.exe pack /r /m AppxManifest.xml /f MappingFile.txt /p Videos.appx
MakeAppx.exe pack /r /m AppxManifest.xml /f MappingFile.txt /p Videos.msix

Perlu dicatat di sini bahwa semua file yang direferensikan dalam AppxManifest (file logo) tidak dapat dipindahkan ke paket aset - file-file ini harus diduplikasi di seluruh paket arsitektur.

Paket aset juga tidak boleh berisi resources.pri; MRT tidak dapat digunakan untuk mengakses file paket aset. Untuk mempelajari selengkapnya tentang cara mengakses file paket aset dan mengapa paket aset mengharuskan aplikasi Anda diinstal ke drive NTFS, lihat Mengembangkan dengan paket aset dan melipat paket.

Untuk mengontrol apakah paket aset diizinkan untuk dijalankan atau tidak, Anda dapat menggunakan uap6:AllowExecution di elemen Properti AppxManifest Anda juga harus menambahkan uap6 ke elemen Paket tingkat atas untuk menjadi berikut:

<Package IgnorableNamespaces="uap uap6" 
xmlns:uap6="http://schemas.microsoft.com/appx/manifest/uap/windows10/6" 
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" 
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">

Jika tidak ditentukan, nilai default untuk AllowExecution adalah true – atur ke false untuk paket aset tanpa executable untuk membuat penerbitan lebih cepat.