Cara Visual Studio menghasilkan manifes paket aplikasi

Saat Anda membuat proyek dengan Visual Studio, Visual Studio menghasilkan manifes paket (AppxManifest.xml), yang berisi informasi yang diperlukan sistem untuk menyebarkan, menampilkan, atau memperbarui aplikasi Universal Windows Platform (UWP).

Ada dua variasi file manifes paket aplikasi yang akan Anda temui jika mengembangkan aplikasi dengan Visual Studio

  • Package.appxmanifest
    Ini adalah file gaya XML yang digunakan pengembang untuk mengonfigurasi detail aplikasi, seperti informasi penerbit, logo, arsitektur prosesor, dll. Ini adalah versi manifes paket aplikasi yang mudah dikonfigurasi dan sementara yang digunakan selama pengembangan aplikasi.
  • AppxManifest.xml
    File ini dihasilkan oleh proses build Visual Studio dan didasarkan pada informasi dalam file Package.appxmanifest. Ini adalah versi akhir dari manifes paket aplikasi yang digunakan dengan aplikasi yang diterbitkan dan dibebani sisi. Jika ada pembaruan yang dilakukan pada file Package.appxmanifest, Anda harus membangun kembali proyek untuk melihat pembaruan dalam file AppxManifest.xml.

Untuk gambaran umum proses pengemasan, lihat Mengemas aplikasi UWP dengan Visual Studio.

Memvalidasi manifes aplikasi

Sebelum dapat memublikasikan aplikasi, Anda harus memperbaiki kesalahan apa pun yang menyebabkan salah satu pemeriksaan validasi Visual Studio gagal. Saat Visual Studio menghasilkan manifes, Visual Studio memvalidasi aplikasi Anda dengan cara berikut:

  • Validasi sintaksis
    Visual Studio mengonfirmasi apakah semua data dalam manifes aplikasi sesuai dengan skema manifes aplikasi.
  • Validasi semantik
    Visual Studio menyediakan panduan tentang data yang diharapkan, berdasarkan konteks informasi.

Catatan

Jika bagian ini tidak menyebutkan bidang yang Anda cari, bagian ini dihasilkan dari data yang mungkin telah dikonfigurasi secara terpisah atau nilai default dari skema manifes.

Membuat konten manifes

Visual Studio mengisi bidang dalam tabel berikut saat menghasilkan file AppxManifest.xml untuk paket aplikasi.

Identitas

Bagian Identity manifes aplikasi berisi bidang berikut.

Bidang Deskripsi
Nama Nama paket, yang diisi secara berbeda dalam skenario berikut:
  • Secara default, nilai bidang ini adalah GUID yang dihasilkan.
  • Jika Anda mengaitkan aplikasi dengan Microsoft Store, atau jika Anda memanggil perintah Store -> Create App Packages... lalu masuk dengan akun pengembang, nilai bidang ini diambil dari aplikasi terkait di Microsoft Store atau Pusat Mitra.
  • Jika Anda memanggil perintah Simpan -> Buat Paket Aplikasi... tetapi jangan masuk dengan akun pengembang, nilai bidang ini diambil dari manifes sumber.
Publisher Nama penerbit. Nama ini diisi secara berbeda dalam skenario berikut:
  • Secara default, nilai bidang ini adalah nama pengguna Anda.
  • Jika Anda mengaitkan aplikasi dengan Microsoft Store, atau jika Anda memanggil perintah Store -> Create App Packages... lalu masuk dengan akun pengembang, nilai bidang ini adalah penerbit yang terkait dengan akun tersebut.
  • Jika Anda memanggil perintah Simpan -> Buat Paket Aplikasi... tetapi jangan masuk dengan akun pengembang, nilai bidang ini cocok dengan bidang subjek sertifikat pengujian yang Anda gunakan untuk menandatangani paket aplikasi.
Visual Studio hanya mendukung formulir nama umum (CN) untuk penerbit dan akan menambahkan awalan "CN=" ke bidang penerbit dalam manifes.
Versi Versi aplikasi yang sedang dibangun. Ini biasanya bertahap setiap kali aplikasi telah dimodifikasi dan dipaketkan. Untuk memastikan bahwa Version ditambahkan dengan benar, gunakan dialog yang disediakan saat Anda memanggil Store -> Buat Paket Aplikasi... untuk membuat pembaruan.
ProcessorArchitecture Nilai yang dihasilkan berdasarkan konfigurasi build yang Anda tentukan untuk proyek. Jika referensi proyek atau referensi file dalam proyek menargetkan arsitektur tertentu yang berbeda dari paket aplikasi, kesalahan build akan muncul, dan Anda harus mengubah arsitektur target paket aplikasi agar berfungsi untuk semua referensi.

Berikut adalah contoh Identity XML output:

<Identity Name="Microsoft.UWPAppExample"
          Publisher="CN=Microsoft Corporation"
          Version="1.0.0.0"
          ProcessorArchitecture="x86" />

Properti

Bagian Properties manifes aplikasi berisi bidang dalam tabel berikut.

Bidang Deskripsi
PublisherDisplayName String ini diisi secara berbeda dalam skenario berikut:
  • Secara default, nilai bidang ini adalah nama pengguna Anda.
  • Jika Anda mengaitkan aplikasi dengan Microsoft Store, atau jika Anda memanggil perintah Store -> Create App Packages... lalu masuk dengan akun pengembang, nilai tha bidang ini cocok dengan string PublisherDisplayName yang terkait dengan akun pengembang Anda.
  • Jika Anda memanggil perintah Store -> Create App Packages... tetapi jangan masuk dengan akun pengembang, nilai bidang ini adalah nama pengguna Anda, kecuali Anda menentukan sebaliknya dalam file Package.appxmanifest.
DisplayName String ini diisi secara berbeda dalam skenario berikut:
  • Secara default, nilai bidang ini adalah nama proyek.
  • Jika Anda mengaitkan aplikasi dengan Microsoft Store, atau jika Anda memanggil perintah Store -> Create App Packages... lalu masuk dengan akun pengembang, nilai bidang ini diisi sesuai dengan aturan berikut:
    • Jika Anda menentukan nilai ini dalam manifes sumber dan nilai dimulai dengan (yang menunjukkan bahwa Anda ingin melokalkan nilai ini), nilai bidang ini akan cocok dengan @ apa yang Anda tentukan.
    • Jika aplikasi yang dipilih hanya memiliki satu nama, nilainya akan menjadi nama tersebut.
    • Jika aplikasi yang dipilih memiliki beberapa nama tetapi manifes sumber tidak dilokalkan, nilai diatur ke nama tampilan dalam manifes sumber. Jika tidak, nilai diatur ke nama pertama yang dipesan.
  • Jika Anda memanggil perintah Simpan -> Buat Paket Aplikasi... tetapi jangan masuk dengan akun pengembang, nilai bidang ini diambil dari manifes sumber.
Logo Templat Visual Studio akan digunakan Assets\StoreLogo.png secara default. Nilai ini harus disesuaikan oleh pengembang dalam file Package.appxmanifest.

Berikut adalah contoh Properties XML output:

<Properties>
    <DisplayName>UWP App Example</DisplayName>
    <PublisherDisplayName>Microsoft Corporation</PublisherDisplayName>
    <Logo>Assets\StoreLogo.png</Logo>
</Properties>

Aplikasi

Manifes aplikasi dapat berisi beberapa Application elemen, yang masing-masing memiliki nama tampilan yang muncul pada petak peta di klien. Bagian Application manifes aplikasi berisi bidang dalam tabel berikut.

Bidang Deskripsi
Id String ini diisi secara berbeda dalam skenario berikut:
  • Secara default, nilai bidang ini adalah nama proyek.
  • Jika Anda mengaitkan aplikasi dengan Microsoft Store, atau jika Anda memanggil perintah Store -> Create App Packages... lalu masuk dengan akun pengembang, nilai bidang ini adalah nama aplikasi untuk aplikasi yang dipilih jika /Properties[@DisplayName] dan /Applications/Application[@DisplayName] di manifes sumber cocok. Jika tidak, nilainya tetap sama seperti dalam manifes sumber.
  • Jika Anda memanggil perintah Simpan -> Buat Paket Aplikasi... tetapi jangan masuk dengan akun pengembang, nilai bidang ini sama seperti dalam manifes sumber.
Eksekusi Nilai bidang ini adalah nama output dari perakitan proyek. Token yang dapat dieksekusi $targetnametoken$.exe yang digunakan dalam file manifes sumber (Package.appxmanifest) diganti dengan nama file aktual saat manifes dibuat.
EntryPoint Nilai ini didasarkan pada nilai dan Id yang dihasilkanExecutable.

Contoh Application output:

<Applications>
    <Application Id="App" Executable="UWPAppExample.exe" EntryPoint="UWPAppExample.App">
        <!-- Other elements configured within the Application, such as Extensions, VisualElements, etc. -->
</Applications>

PackageDependency

Bagian ini PackageDependency berisi semua dependensi pustaka komponen Windows untuk paket ini. Misalnya, jika proyek Anda memiliki referensi ke WinJS, Visual Studio mengambil informasi identitas paket dependensi saat manifes dibuat. Visual Studio kemudian mengisi bagian ini dengan Name bidang dan MinVersion untuk setiap paket dependen.

Dalam proyek C++ asli, Visual Studio akan menambahkan referensi ke Visual C/C++ Runtime:

<Dependencies>
    <PackageDependency Name="Microsoft.VCLibs.140.00.Debug" MinVersion="14.0.30035.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />
</Dependencies>

Ekstensi pendaftaran Windows Runtime

Anda dapat menerapkan komponen Windows Runtime untuk aplikasi Anda, tetapi Anda harus mendaftarkan komponen tersebut dengan sistem operasi agar berjalan dengan benar. Untuk mendaftarkan komponen Windows Runtime, Anda harus meletakkan informasi pendaftaran dalam file WinMD dan dalam manifes aplikasi. Jika proyek mengimplementasikan komponen Windows Runtime, output build proyek akan berisi file WinMD. Visual Studio mengekstrak informasi pendaftaran Windows Runtime dari file WinMD dan menghasilkan elemen yang sesuai Extension dalam manifes aplikasi.

Sistem ini mendukung dua bentuk server: server .dll (dalam proses) dan server .exe (di luar proses). Server ini memerlukan informasi pendaftaran yang serupa tetapi berbeda yang harus disalin ke dalam manifes aplikasi. Visual Studio mendukung pembuatan manifes hanya untuk server .dll, dan ekstensi DLLServer diperlukan untuk mendaftarkan server .dll. Nilai berikut dalam manifes aplikasi diambil dari file WinMD untuk membuat Ekstensi DLLServer:

  • DllPath
  • ActivatableClassId
  • ThreadingModel
  • ActivatableClass (atribut ActivatableClassId)

Berikut adalah contoh XML output:

<extension category="Microsoft.Windows.ActivatableClass">
    <dllServer>
        <dllPath>Fabrikam.dll</dllPath>
        <activatableClass activatableClassId="Fabrikam.MyClass" threadingModel="sta" />
    </dllServer>
</extension>

Untuk informasi selengkapnya tentang topik ini, lihat komponen Windows Runtime.

Sumber

Bagian berisi Resources entri untuk setiap bahasa yang didukung aplikasi. Anda harus memiliki setidaknya satu bahasa sumber daya yang ditentukan dalam manifes aplikasi. Visual Studio secara otomatis menghasilkan daftar bahasa yang didukung berdasarkan informasi pelokalan dalam proyek. Token bahasa sumber daya "x-generate" yang digunakan dalam file manifes sumber (Package.appxmanifest) diganti dengan kode bahasa aktual saat manifes dibuat. Berikut adalah contoh XML output:

<Resources>
    <Resource Language="en-us">
    <Resource Language="fr-fr">
</Resources>

Entri pertama dalam daftar adalah bahasa default untuk aplikasi.

TargetDeviceFamily

Bagian TargetDeviceFamily berisi bidang berikut:

  • Nama
  • MinVersion
  • MaxVersionTested
<Dependencies>
    <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.22000.0" />
</Dependencies>

Elemen-elemen ini diisi dari properti MSBuild.

Lihat juga

Mengemas aplikasi UWP dengan Visual Studio
Arsitektur paket aplikasi
Windows 10 referensi skema manifes paket