Paket aplikasi (MakeAppx.exe)

Catatan

Untuk panduan UWP tentang menggunakan alat ini, lihat Membuat paket aplikasi dengan alat MakeAppx.exe.

 

App packager (MakeAppx.exe) membuat paket aplikasi dari file di disk atau mengekstrak file dari paket aplikasi ke disk. Dimulai dengan Windows 8.1, Paket aplikasi juga membuat bundel paket aplikasi dari paket aplikasi pada disk atau mengekstrak paket aplikasi dari bundel paket aplikasi ke disk. Ini termasuk dalam Microsoft Visual Studio dan Windows Software Development Kit (SDK) untuk Windows 8 atau Windows Software Development Kit (SDK) untuk Windows 8.1 dan yang lebih baru. Kunjungi Unduhan untuk pengembang guna mendapatkannya.

Alat MakeAppx.exe biasanya ditemukan di lokasi spesifik versi sistem operasi:

  • C:\Program Files (x86)\Windows Kits\10\bin<build number><architecture>\makeappx.exe

Di mana <arsitektur> = x86, x64, arm, ar64 atau chpe. Atau, itu mungkin terletak di:

C:\Program Files (x86)\Windows Kits\10\App Certification Kit\makeappx.exe

Menggunakan paket Aplikasi

Catatan

Jalur relatif didukung di seluruh alat.

 

Untuk membuat paket menggunakan struktur direktori

Tempatkan AppxManifest.xml di akar direktori yang berisi semua file payload untuk aplikasi Anda. Struktur direktori yang identik dibuat untuk paket aplikasi, dan akan tersedia saat paket diekstrak pada waktu penyebaran.

  1. Tempatkan semua file dalam struktur direktori tunggal, membuat subdirektori sesuai keinginan.

  2. Buat manifes paket yang valid, AppxManifest.xml, dan letakkan di direktori akar.

  3. Jalankan perintah ini:

    MakeAppx pack /dinput_directorypath/pfilepath.appx

Untuk membuat paket menggunakan file pemetaan

  1. Buat manifes paket yang valid, AppxManifest.xml.

  2. Membuat file pemetaan. Baris pertama berisi string [Files], dan baris yang mengikuti menentukan jalur sumber (disk) dan tujuan (paket) dalam string yang dikutip.

    [Files]
    "C:\MyApp\StartPage.htm"     "default.html"
    "C:\MyApp\readme.txt"        "doc\readme.txt"
    "\\MyServer\path\icon.png"   "icon.png"
    "MyCustomManifest.xml"       "AppxManifest.xml"
    
  3. Jalankan perintah ini:

    MakeAppx pack /fmapping_filepath/pfilepath.appx

Untuk menandatangani paket menggunakan SignTool

  1. Buat sertifikat. Penerbit yang tercantum dalam manifes harus cocok dengan informasi subjek penerbit sertifikat penandatanganan. Untuk informasi selengkapnya tentang membuat sertifikat penandatanganan, lihat Cara membuat sertifikat penandatanganan paket aplikasi.

  2. Jalankan SignTool.exe untuk menandatangani paket:

    SignTool sign /a /v /fdhashAlgorithm/fcertFileNamefilepath.appx

    HashAlgorithm harus cocok dengan algoritma hash yang digunakan untuk membuat peta blok saat aplikasi dipaketkan. Dengan utilitas pengemasan MakeAppx, algoritma hash peta blok Appx default adalah SHA256. Jalankan SignTool.exe menentukan SHA256 sebagai algoritma hash file (/fd):

    SignTool sign /a /v /fd SHA256 /fcertFileNamefilepath.appx

    Untuk informasi selengkapnya tentang cara menandatangani paket, lihat Cara menandatangani paket aplikasi menggunakan SignTool.

Untuk mengekstrak file dari paket

  1. Jalankan perintah ini:

    MakeAppx membongkar file /p.appx /doutput_directory

  2. Paket yang tidak dikemas memiliki struktur yang sama dengan paket yang diinstal.

Untuk membuat bundel paket menggunakan struktur direktori

Kami menggunakan perintah bundel untuk membuat app bundle pada <nama> bundel output dengan menambahkan semua paket dari <direktori> konten (termasuk subfolder). Jika <direktori> konten berisi manifes bundel, AppxBundleManifest.xml, direktori tersebut diabaikan.

  1. Tempatkan semua paket dalam struktur direktori tunggal, membuat subdirektori sesuai keinginan.

  2. Jalankan perintah ini:

    Bundel MakeAppx /dinput_directorypath/pfilepath.appxbundle

Untuk membuat bundel paket menggunakan file pemetaan

Kami menggunakan perintah bundel untuk membuat app bundle pada <nama> bundel output dengan menambahkan semua paket dari daftar paket dalam <file> pemetaan. Jika <file> pemetaan berisi manifes bundel, AppxBundleManifest.xml, file tersebut diabaikan.

  1. Membuat <file> pemetaan. Baris pertama berisi string [Files], dan baris yang mengikuti menentukan paket yang akan ditambahkan ke bundel. Setiap paket dijelaskan oleh sepasang jalur dalam tanda kutip, dipisahkan oleh spasi atau tab. Pasangan jalur mewakili sumber paket (pada disk) dan tujuan (dalam bundel). Semua nama paket tujuan harus memiliki ekstensi .appx.

        [Files]
        "C:\MyApp\MyApp_x86.appx"                 "MyApp_x86.appx"
        "C:\Program Files (x86)\ResPack.appx"    "resources\resPack.appx"
        "\\MyServer\path\ResPack.appx"           "Respack.appx"
        "my app files\respack.appx"              "my app files\respack.appx"
    
  2. Jalankan perintah ini:

    Bundel MakeAppx /fmapping_filepath/pfilepath.appxbundle

Untuk mengekstrak paket dari bundel

  1. Jalankan perintah ini:

    MakeAppx unbundle /pbundle_name.appxbundle /doutput_directory

  2. Bundel yang tidak dikemas memiliki struktur yang sama dengan bundel paket yang diinstal.

Untuk mengenkripsi paket dengan file kunci

  1. Buat file kunci. File kunci harus dimulai dengan baris yang berisi string "[Keys]" diikuti dengan baris yang menjelaskan kunci untuk mengenkripsi paket. Setiap kunci dijelaskan oleh sepasang string dalam tanda kutip, dipisahkan oleh spasi atau tab. String pertama mewakili ID kunci dan string kedua mewakili kunci enkripsi dalam bentuk heksadesimal.

        [Keys]
        "0"                 "1AC4CDCFF1924D2885A0607269787BA6BF09B7FFEBF74ED4B9D86E423CF9186B"
    
  2. Jalankan perintah ini:

    MakeAppx.exe mengenkripsi /ppackage_name.appx /epencrypted_package_name.eappx /kfkeyfile_name.txt

  3. Paket input akan dienkripsi ke dalam paket terenkripsi yang ditentukan menggunakan file kunci yang disediakan.

Untuk mengenkripsi paket dengan kunci pengujian global

  1. Jalankan perintah ini:

    MakeAppx.exe mengenkripsi /ppackage_name.appx /epencrypted_package_name.eappx /kt

  2. Paket input akan dienkripsi ke dalam paket terenkripsi yang ditentukan menggunakan kunci pengujian global.

Untuk mendekripsi paket dengan file kunci

  1. Buat file kunci. File kunci harus dimulai dengan baris yang berisi string "[Keys]" diikuti dengan baris yang menjelaskan kunci untuk mengenkripsi paket. Setiap kunci dijelaskan oleh sepasang string dalam tanda kutip, dipisahkan oleh spasi atau tab. String pertama mewakili ID kunci 32 byte yang dikodekan base64 dan string kedua mewakili kunci enkripsi 32 byte yang dikodekan base64.

        [Keys]
        "OWVwSzliRGY1VWt1ODk4N1Q4R2Vqc04zMzIzNnlUREU="                 "MjNFTlFhZGRGZEY2YnVxMTBocjd6THdOdk9pZkpvelc="
    
  2. Jalankan perintah ini:

    MakeAppx.exe mendekripsi /ppackage_name.appx /epunencrypted_package_name.eappx /kfkeyfile_name.txt

  3. Paket input akan didekripsi ke dalam paket yang tidak terenkripsi yang ditentukan menggunakan file kunci yang disediakan.

Untuk mendekripsi paket dengan kunci pengujian global

  1. Jalankan perintah ini:

    MakeAppx.exe mendekripsi /ppackage_name.appx /epunencrypted_package_name.eappx /kt

  2. Paket input akan didekripsi ke dalam paket yang tidak terenkripsi yang ditentukan menggunakan kunci pengujian global.

Penggunaan

Argumen baris perintah /p selalu diperlukan, dengan /d, /f, atau /ep. Perhatikan bahwa /d, /f, dan /ep saling eksklusif.

Paket MakeAppx [opsi]/p<nama> paket output/d<direktori konten>

Paket MakeAppx [opsi]/p<nama> paket output/file pemetaan f<>

MakeAppx membongkar [options]/p<input package name>/d<output directory>

Bundel MakeAppx [options]/p<output bundle name>/d<content directory>

Bundel MakeAppx [options]/p<output bundle name>/f<mapping file>

MakeAppx unbundle [options]/p<input bundle name>/d<output directory>

MakeAppx mengenkripsi [opsi]/p<nama> paket input/nama paket output ep<>

MakeAppx mendekripsi [opsi]/p<nama> paket input/nama paket output ep<>

Sintaks baris perintah

Berikut adalah sintaks penggunaan umum baris perintah untuk MakeAppx.

MakeAppx [pack|unpack|bundle|unbundle|encrypt|decrypt] [/h/kf/kt/l/o/no/nv/v/pfn/?]

MakeAppx mengemas atau membongkar file dalam paket, memaketkan, atau membongkar paket dalam bundel, atau mengenkripsi atau mendekripsi paket aplikasi atau bundel dalam direktori input atau file pemetaan yang ditentukan. Berikut adalah daftar parameter yang berlaku untuk paket MakeAppx, bongkar MakeAppx, bundel MakeAppx, MakeAppx unbundle, enkripsi MakeAppx, atau dekripsi MakeAppx.

/L

Opsi ini digunakan untuk paket yang dilokalkan. Perjalanan validasi default pada paket yang dilokalkan. Opsi ini hanya menonaktifkan validasi tertentu, tanpa mengharuskan semua validasi dinonaktifkan.

/O

Timpa file output jika ada. Jika Anda tidak menentukan opsi ini atau opsi /no , pengguna akan ditanya apakah mereka ingin menimpa file.

Anda tidak dapat menggunakan opsi ini dengan /no.

/Tidak

Mencegah penimpaan file output jika ada. Jika Anda tidak menentukan opsi ini atau opsi /o , pengguna akan ditanya apakah mereka ingin menimpa file.

Anda tidak dapat menggunakan opsi ini dengan /o.

/Nv

Lewati validasi semantik. Jika Anda tidak menentukan opsi ini, alat ini akan melakukan validasi lengkap paket.

/v

Aktifkan output pengelogan verbose ke konsol.

/?

Tampilkan teks bantuan.

MakeAppx pack , MakeAppx unpack , MakeAppx bundle, MakeAppx unbundle, MakeAppx encrypt, dan MakeAppx decrypt adalah perintah yang saling eksklusif. Berikut adalah parameter baris perintah yang berlaku khusus untuk setiap perintah:

Paket MakeAppx [h]

Membuat paket.

Algoritma /h

Menentukan algoritma hash yang akan digunakan saat membuat peta blok. Berikut adalah nilai yang valid untuk algoritma:

SHA256 (default)
SHA384
SHA512

Anda tidak dapat menggunakan opsi ini dengan perintah buka kemasan.

MakeAppx membongkar [pfn]

Mengekstrak semua file dalam paket yang ditentukan ke direktori output yang ditentukan. Output memiliki struktur direktori yang sama dengan paket.

/pfn

Menentukan direktori bernama dengan nama lengkap paket. Direktori ini dibuat di bawah lokasi output yang disediakan. Anda tidak dapat menggunakan opsi ini dengan perintah paket .

MakeAppx unbundle [pfn]

Membonggar semua paket ke subdirektori di bawah jalur output yang ditentukan, dinamai sesuai nama lengkap bundel. Output memiliki struktur direktori yang sama dengan bundel paket yang diinstal.

/pfn

Menentukan direktori bernama dengan nama lengkap bundel paket. Direktori ini dibuat di bawah lokasi output yang disediakan. Anda tidak dapat menggunakan opsi ini dengan perintah bundel .

Enkripsi MakeAppx [kf, kt]

Membuat paket aplikasi terenkripsi dari paket aplikasi input yang ditentukan pada paket output yang ditentukan.

File kunci /kf<>

Mengenkripsi paket atau bundel menggunakan kunci dari file kunci yang ditentukan. Anda tidak dapat menggunakan opsi ini dengan kt.

/Kt

Mengenkripsi paket atau bundel menggunakan kunci pengujian global. Anda tidak dapat menggunakan opsi ini dengan kf.

MakeAppx dekripsi [kf, kt]

Membuat paket aplikasi yang tidak terenkripsi dari paket aplikasi input yang ditentukan pada paket output yang ditentukan.

File kunci /kf<>

Mendekripsi paket atau bundel menggunakan kunci dari file kunci yang ditentukan. Anda tidak dapat menggunakan opsi ini dengan kt.

/Kt

Mendekripsi paket atau bundel menggunakan kunci pengujian global. Anda tidak dapat menggunakan opsi ini dengan kf.

Validasi semantik yang dilakukan oleh MakeAppx

MakeAppx melakukan validasi semantik terbatas yang dirancang untuk menangkap kesalahan penyebaran yang paling umum dan membantu memastikan bahwa paket aplikasi valid.

Validasi ini memastikan bahwa:

  • Semua file yang dirujuk dalam manifes paket disertakan dalam paket aplikasi.
  • Aplikasi tidak memiliki dua kunci yang identik.
  • Aplikasi tidak mendaftar untuk protokol terlarang dari daftar ini: SMB , FILE, MS-WWA-WEB, MS-WWA.

Validasi semantik ini tidak lengkap, dan paket yang dibangun oleh MakeAppx tidak dijamin dapat diinstal.