Windows App SDK panduan penyebaran untuk aplikasi paket yang bergantung pada kerangka kerja

Artikel ini menyediakan panduan tentang menyebarkan aplikasi paket yang bergantung pada kerangka kerja (lihat Apa itu MSIX?) yang menggunakan Windows App SDK. Topik yang setara untuk opsi pengemasan yang bergantung pada kerangka kerja lainnya adalah Windows App SDK panduan penyebaran untuk aplikasi yang bergantung pada kerangka kerja yang dikemas dengan lokasi eksternal atau tidak dikemas.

Overview

Secara default, saat Anda membuat proyek menggunakan salah satu templat WinUI 3 di Visual Studio, proyek Anda dikonfigurasi untuk membangun aplikasi ke dalam paket MSIX menggunakan MSIX proyek tunggal (lihat Paket aplikasi Anda menggunakan MSIX proyek tunggal) atau proyek Windows Application Packaging (lihat Siapkan aplikasi desktop Anda untuk pengemasan MSIX di Visual Studio). Anda kemudian dapat membuat paket MSIX untuk aplikasi Anda dengan menggunakan instruksi di Package desktop atau aplikasi UWP di Visual Studio. Setelah Anda membuat paket MSIX untuk aplikasi Anda, Anda memiliki beberapa opsi untuk Mengelola penyebaran MSIX.

Untuk mempelajari lebih lanjut tentang paket yang mungkin diperlukan oleh aplikasi paket Anda saat menggunakan Windows App SDK, lihat arsitektur deployment untuk Windows App SDK. Itu termasuk paket Framework, Main, dan Singleton ; yang semuanya ditandatangani dan diterbitkan oleh Microsoft. Ada dua persyaratan utama untuk menyebarkan aplikasi paket:

  1. Deploy paket kerangka kerja Windows App SDK.
  2. Panggil API Penggelaran.

Prerequisites

Menyebarkan paket kerangka kerja Windows App SDK

Paket kerangka kerja Windows App SDK berisi biner Windows App SDK yang digunakan pada waktu proses, dan diinstal dengan aplikasi Anda. Kerangka kerja ini memiliki persyaratan penyebaran yang berbeda untuk berbagai saluran Windows App SDK.

Versi stabil

Saat Anda menginstal versi rilis stabil dari paket Windows App SDK NuGet di komputer pengembangan Anda, dan Anda membuat proyek menggunakan salah satu templat proyek WinUI yang disediakan, manifes paket yang dihasilkan berisi elemen PackageDependency yang menentukan dependensi pada paket kerangka kerja.

Namun, jika Anda membuat paket aplikasi secara manual menggunakan Proyek Pengemasan Aplikasi Windows terpisah, maka Anda harus mendeklarasikan PackageReference dalam file />

<ItemGroup>
   <PackageReference Include="Microsoft.WindowsAppSDK" Version="1.8.260209005">
       <IncludeAssets>build</IncludeAssets>
   </PackageReference>
</ItemGroup>

Dependensi paket tersebut memastikan bahwa paket Kerangka Kerja diinstal saat aplikasi Anda disebarkan ke komputer lain.

Versi pratinjau

Saat Anda menginstal versi rilis pratinjau paket Windows App SDK NuGet di komputer pengembangan Anda, versi pratinjau paket kerangka kerja Windows App SDK disebarkan selama waktu build sebagai dependensi paket NuGet.

Memanggil API Penyebaran

Lihat juga Initialize Windows App SDK.

API Penyebaran disediakan oleh paket kerangka kerja Windows App SDK, dan tersedia di Microsoft.Windows. ApplicationModel.WindowsAppRuntime namespace. Model aplikasi Windows tidak mendukung mendeklarasikan dependensi pada paket Utama dan Singleton. Oleh karena itu, API Penyebaran diperlukan karena alasan ini:

  1. Untuk menyebarkan paket Singleton untuk fitur yang tidak ada dalam paket Kerangka Kerja (misalnya, pemberitahuan push).
  2. Untuk menyebarkan paket Utama, yang memungkinkan pembaruan otomatis ke paket Kerangka Kerja dari Microsoft Store.

Untuk aplikasi paket yang tidak didistribusikan melalui Store, Anda sebagai pengembang bertanggung jawab untuk mendistribusikan paket Framework. Kami menyarankan agar Anda memanggil API Penyebaran sehingga setiap pembaruan layanan penting dikirimkan. Perhatikan bahwa untuk menggunakan fitur di luar paket Kerangka Kerja (misalnya, pemberitahuan push), paket Singleton harus disebarkan (ini dapat dilakukan dengan API Penyebaran, atau dengan mendistribusikan ulang paket MSIX menggunakan metode penginstalan Anda sendiri).

Important

Hanya aplikasi paket yang memiliki kepercayaan penuh atau yang memiliki kemampuan terbatas packageManagement yang memiliki izin untuk menggunakan API Distribusi untuk menginstal dependensi paket Main dan Singleton.

Anda harus memanggil API Penyebaran setelah proses aplikasi Anda diinisialisasi, tetapi sebelum aplikasi Anda menggunakan fitur runtime Windows App SDK yang menggunakan paket Singleton (misalnya, pemberitahuan push). Metode utama API Penyebaran adalah metode GetStatus statis dan Inisialisasi kelas DeploymentManager .

  • Metode GetStatus mengembalikan status penyebaran runtime Windows App SDK yang sedang dimuat. Gunakan metode ini untuk mengidentifikasi apakah ada pekerjaan yang diperlukan untuk menginstal paket runtime Windows App SDK sebelum aplikasi saat ini dapat menggunakan fitur Windows App SDK.
  • Metode Initialize memverifikasi apakah semua paket yang diperlukan ada dalam versi minimum yang dibutuhkan oleh runtime Windows App SDK yang sedang dimuat saat ini. Jika ada dependensi paket yang hilang, maka metode ini mencoba mendaftarkan paket yang hilang tersebut. Dimulai pada Windows App SDK 1.1, metode Initialize juga mendukung opsi untuk menyebarkan paksa paket runtime Windows App SDK. Itu mematikan proses apa pun untuk paket runtime Main dan Singleton , dan dengan demikian mengganggu layanan mereka (misalnya, pemberitahuan push tidak akan mengirimkan pemberitahuan selama waktu ini). Anda harus memanggil Inisialisasi hanya sekali. Anda tidak perlu memanggil Initialize untuk aplikasi yang disebarkan melalui perintah Start Tanpa Debugging dan Mulai Debugging di Visual Studio.

Important

Nilai default properti Visual Studio <WindowsAppSdkDeploymentManagerInitialize> adalah true. Jadi jika Anda ingin memanggil DeploymentManager.Initialize secara eksplisit, lalu atur <WindowsAppSdkDeploymentManagerInitialize>false</WindowsAppSdkDeploymentManagerInitialize> dalam file proyek Visual Studio Anda.

Aplikasi sampel API penerapan

Untuk panduan tambahan tentang cara menggunakan metode GetStatus dan Initialize kelas DeploymentManager , jelajahi aplikasi sampel yang tersedia.

Mengatasi kesalahan penginstalan

Jika API Penyebaran mengalami kesalahan selama penginstalan paket runtime Windows App SDK, api tersebut mengembalikan kode kesalahan yang menjelaskan masalahnya.

Misalnya, jika aplikasi Anda tidak dipercaya sepenuhnya, atau tidak memiliki kemampuan packageManagement terbatas, maka Anda akan menerima kode kesalahan ACCESS_DENIED. Untuk meninjau kode kesalahan lain yang mungkin Anda temui dan kemungkinan penyebabnya, lihat Pemecahan Masalah Pengemasan, Penyebaran, dan Kueri Aplikasi Windows.

Jika kode kesalahan tidak memberikan informasi yang cukup, maka Anda dapat menemukan informasi diagnostik lebih lanjut di log peristiwa terperinci (lihat Mendapatkan informasi diagnostik).

Jika Anda mengalami kesalahan yang tidak dapat Anda diagnosis, maka ajukan masalah di WindowsAppSDK GitHub repo dengan kode kesalahan dan log peristiwa sehingga kami dapat menyelidiki masalah tersebut.