Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Jika Anda ingin mengirimkan aplikasi ke Store, Anda perlu menghubungi dukungan pengembang Windows dan mendapatkan persetujuan untuk menggunakan paket aset dan lipatan paket.
Paket aset dapat mengurangi ukuran kemasan keseluruhan dan waktu penerbitan untuk aplikasi Anda ke Store. Anda dapat mempelajari lebih lanjut tentang paket aset dan bagaimana hal itu dapat mempercepat iterasi pengembangan Anda di Pengenalan paket aset.
Jika Anda berpikir untuk menggunakan paket aset untuk aplikasi Anda atau sudah tahu bahwa Anda ingin menggunakannya, maka Anda mungkin bertanya-tanya tentang bagaimana paket aset akan mengubah proses pengembangan Anda. Singkatnya, pengembangan aplikasi untuk Anda tetap tidak berubah - ini dimungkinkan karena pengelompokan paket untuk paket aset.
Akses file setelah memisahkan aplikasi Anda
Untuk memahami bagaimana pelipatan paket tidak memengaruhi proses pengembangan Anda, mari kita mundur terlebih dahulu untuk memahami apa yang terjadi ketika Anda membagi aplikasi Anda menjadi beberapa paket (dengan paket aset atau paket sumber daya).
Pada tingkat tinggi, ketika Anda membagi beberapa file aplikasi Anda menjadi paket lain (yang bukan paket arsitektur), Anda tidak akan dapat mengakses file tersebut secara langsung relatif terhadap tempat kode Anda berjalan. Ini karena semua paket ini diinstal ke direktori yang berbeda dari tempat paket arsitektur Anda diinstal. Misalnya, jika Anda membuat game dan game Anda dilokalkan ke dalam bahasa Prancis dan Jerman dan Anda membangun untuk mesin x86 dan x64, maka Anda harus memiliki file paket aplikasi ini dalam bundel aplikasi game Anda:
- MyGame_1.0_x86.appx
- MyGame_1.0_x64.appx
- MyGame_1.0_language-fr.appx
- MyGame_1.0_language-de.appx
Ketika game Anda diinstal ke komputer pengguna, setiap file paket aplikasi akan memiliki foldernya sendiri di direktori WindowsApps . Jadi untuk pengguna Prancis yang menjalankan Windows 64-bit, game Anda akan terlihat seperti ini:
C:\Program Files\WindowsApps\
|-- MyGame_1.0_x64
| `-- …
|-- MyGame_1.0_language-fr
| `-- …
`-- …(other apps)
Perhatikan bahwa file paket aplikasi yang tidak berlaku untuk pengguna tidak akan diinstal (paket x86 dan Jerman).
Untuk pengguna ini, eksekusi utama game Anda akan berada dalam folder MyGame_1.0_x64 dan biasanya, hanya akan memiliki akses ke file dalam folder tersebut. Untuk mengakses file di folder MyGame_1.0_language-fr , Anda harus menggunakan API MRT atau API PackageManager. API MRT dapat secara otomatis memilih file yang paling tepat dari bahasa yang diinstal, Anda dapat mengetahui selengkapnya tentang API MRT di Windows.ApplicationModel.Resources.Core. Atau, Anda dapat menemukan lokasi paket bahasa Prancis yang diinstal menggunakan Kelas PackageManager. Anda tidak boleh mengasumsikan lokasi paket aplikasi yang diinstal karena ini dapat berubah dan dapat bervariasi di antara pengguna.
Penggabungan paket sumber daya
Jadi bagaimana Anda dapat mengakses file dalam paket aset Anda? Nah, Anda dapat terus menggunakan API akses file yang Anda gunakan untuk mengakses file lain dalam paket arsitektur Anda. Ini karena file-file paket aset akan dilipat ke dalam paket arsitektur Anda saat diinstal melalui proses penggabungan paket. Selain itu, karena file paket aset awalnya harus berupa file dalam paket arsitektur Anda, ini berarti Bahwa Anda tidak perlu mengubah penggunaan API ketika Anda berpindah dari penyebaran file longgar ke penyebaran yang dipaketkan dalam proses pengembangan Anda.
Untuk memahami selengkapnya tentang cara kerja lipatan paket, mari kita mulai dengan contoh. Jika Anda memiliki proyek game dengan struktur file berikut:
MyGame
|-- Audios
| |-- Level1
| | `-- ...
| `-- Level2
| `-- ...
|-- Videos
| |-- Level1
| | `-- ...
| `-- Level2
| `-- ...
|-- Engine
| `-- ...
|-- XboxLive
| `-- ...
`-- Game.exe
Jika Anda ingin membagi game Anda menjadi 3 paket: paket arsitektur x64, paket aset untuk audio, dan paket aset untuk video, game Anda akan dibagi menjadi paket ini:
MyGame_1.0_x64.appx
|-- Engine
| `-- ...
|-- XboxLive
| `-- ...
`-- Game.exe
MyGame_1.0_Audios.appx
`-- Audios
|-- Level1
| `-- ...
`-- Level2
`-- ...
MyGame_1.0_Videos.appx
`-- Videos
|-- Level1
| `-- ...
`-- Level2
`-- ...
Ketika Anda menginstal game Anda, paket x64 akan disebarkan terlebih dahulu. Kemudian dua paket aset masih akan disebarkan ke folder mereka sendiri, seperti MyGame_1.0_language-fr dari contoh kami sebelumnya. Namun, karena pelipatan paket, file paket aset juga akan ditautkan secara keras untuk muncul di folder MyGame_1.0_x64 (jadi meskipun file muncul di dua lokasi, file tidak memakan dua kali ruang disk). Lokasi di mana file paket aset akan muncul persis adalah lokasi di mana mereka berada relatif terhadap akar paket. Jadi inilah tampilan tata letak akhir dari game yang disebarkan:
C:\Program Files\WindowsApps\
|-- MyGame_1.0_x64
| |-- Audios
| | |-- Level1
| | | `-- ...
| | `-- Level2
| | `-- ...
| |-- Videos
| | |-- Level1
| | | `-- ...
| | `-- Level2
| | `-- ...
| |-- Engine
| | `-- ...
| |-- XboxLive
| | `-- ...
| `-- Game.exe
|-- MyGame_1.0_Audios
| `-- Audios
| |-- Level1
| | `-- ...
| `-- Level2
| `-- ...
|-- MyGame_1.0_Videos
| `-- Videos
| |-- Level1
| | `-- ...
| `-- Level2
| `-- ...
`-- …(other apps)
Saat menggunakan lipatan paket untuk paket aset, Anda masih dapat mengakses file yang telah Anda bagi menjadi paket aset dengan cara yang sama (perhatikan bahwa folder arsitektur memiliki struktur yang sama persis dengan folder proyek asli), dan Anda dapat menambahkan paket aset atau memindahkan file di antara paket aset tanpa memengaruhi kode Anda.
Sekarang mari kita lihat contoh pelipatan paket yang lebih kompleks. Katakanlah Anda ingin membagi file berdasarkan tingkat sebagai gantinya, dan jika Anda ingin mempertahankan struktur yang sama dengan folder proyek asli, paket Anda akan terlihat seperti ini:
MyGame_1.0_x64.appx
|-- Engine
| `-- ...
|-- XboxLive
| `-- ...
`-- Game.exe
MyGame_Level1.appx
|-- Audios
| `-- Level1
| `-- ...
`-- Videos
`-- Level1
`-- ...
MyGame_Level2.appx
|-- Audios
| `-- Level2
| `-- ...
`-- Videos
`-- Level2
`-- ...
Ini akan memungkinkan folder dan file Level1 dalam paket MyGame_Level1 dan folder dan file Level2 dalam paket MyGame_Level2 digabungkan ke dalam folder Audio dan Video selama pelipatan paket. Jadi sebagai aturan umum, jalur relatif yang ditentukan untuk berkas yang dikemas dalam file pemetaan atau tata letak kemasan untuk MakeAppx.exe adalah jalur yang harus Anda gunakan untuk mengaksesnya pada saat paket dilipat.
Terakhir, jika ada dua file dalam paket aset berbeda yang memiliki jalur relatif yang sama, ini akan menyebabkan tabrakan selama pelipatan paket. Jika tabrakan terjadi, peluncuran aplikasi Anda akan menyebabkan terjadinya kesalahan dan kegagalan. Selain itu, karena penggabungan paket memanfaatkan tautan keras, jika Anda menggunakan paket aset, aplikasi Anda tidak dapat diterapkan ke drive non-NTFS. Jika Anda menyadari bahwa aplikasi Anda kemungkinan akan dipindahkan ke drive yang dapat dilepas oleh pengguna, sebaiknya hindari menggunakan paket aset.