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.
Ada dua cara untuk menyebarkan SDK Aplikasi Windows:
- Bergantung pada Kerangka. Aplikasi Anda bergantung pada runtime SDK Aplikasi Windows dan/atau paket Kerangka Kerja yang ada di komputer target. Penyebaran yang bergantung pada kerangka kerja adalah mode penyebaran default SDK Aplikasi Windows untuk penggunaan sumber daya dan kemampuan servis mesin yang efisien.
- Mandiri. Aplikasi Anda membawa dependensi SDK Aplikasi Windows dengannya, menghilangkan kebutuhan akan penginstalan runtime terpisah pada komputer target.
Topik ini juga menggunakan istilah aplikasi yang dikemas, aplikasi paket dengan lokasi eksternal, dan aplikasi yang tidak dikemas. Untuk penjelasan tentang istilah-istilah tersebut, lihat Gambaran umum penyebaran.
| Penyebaran yang tergantung pada kerangka kerja | Menyebarkan mandiri | |
|---|---|---|
| Kelebihan |
Penyebaran kecil. Hanya aplikasi Anda dan dependensi lainnya yang didistribusikan. Runtime SDK Aplikasi Windows dan paket Framework diinstal secara otomatis oleh aplikasi yang bergantung pada kerangka kerja yang dikemas; atau sebagai bagian dari penginstal runtime SDK Aplikasi Windows oleh aplikasi yang bergantung pada kerangka kerja yang dikemas dengan lokasi eksternal atau tidak dikemas. Dapat dilayankan. Pembaruan layanan untuk SDK Aplikasi Windows diinstal secara otomatis melalui paket SDK Aplikasi Windows Framework tanpa memerlukan tindakan apa pun dari aplikasi. |
versi SDK Aplikasi Windows Control. Anda mengontrol versi SDK Aplikasi Windows mana yang disebarkan dengan aplikasi Anda. Pembaruan layanan SDK Aplikasi Windows tidak akan memengaruhi aplikasi Anda kecuali Anda membangun kembali dan mendistribusikannya kembali. Terisolasi dari aplikasi lain. Aplikasi dan pengguna tidak dapat menghapus dependensi SDK Aplikasi Windows tanpa menghapus seluruh aplikasi Anda. Penyebaran Xcopy. Karena dependensi SDK Aplikasi Windows disertakan dalam aplikasi Anda, Anda dapat menyebarkan aplikasi dengan hanya menyalin hasil build Anda, tanpa persyaratan instalasi tambahan. |
| Kerugian |
Dependensi penginstalan tambahan. Memerlukan penginstalan runtime SDK Aplikasi Windows dan/atau paket Kerangka Kerja, yang dapat menambahkan kompleksitas ke penginstalan aplikasi. Dependensi bersama. Risiko bahwa dependensi bersama dicopot. Aplikasi atau pengguna yang menghapus instalan komponen bersama dapat memengaruhi pengalaman pengguna aplikasi lain yang berbagi dependensi. Risiko kompatibilitas. Risiko bahwa pembaruan pemeliharaan pada SDK Aplikasi Windows memperkenalkan perubahan yang memutuskan kompatibilitas. Meskipun pembaruan layanan harus memberikan kompatibilitas mundur, ada kemungkinan bahwa regresi diperkenalkan. |
Pemasangan berskala besar (hanya aplikasi tak terbungkus). Karena aplikasi Anda menyertakan SDK Aplikasi Windows, ukuran unduhan dan ruang hard drive yang diperlukan lebih besar dari yang akan terjadi untuk versi yang bergantung pada kerangka kerja. Performa (hanya aplikasi tanpa kemasan). Lebih lambat dimuat, dan menggunakan lebih banyak memori karena halaman kode tidak dibagikan dengan aplikasi lain. Tidak dapat dilayankan. Versi SDK Aplikasi Windows yang didistribusikan dengan aplikasi Anda hanya dapat diperbarui dengan merilis versi baru aplikasi Anda. Anda bertanggung jawab untuk mengintegrasikan pembaruan layanan SDK Aplikasi Windows ke dalam aplikasi Anda. |
Lihat juga Buat proyek WinUI 3 pertama Anda, dan Gunakan SDK Aplikasi Windows di proyek yang ada.
Note
PublishSingleFile (EXE file tunggal) didukung untuk aplikasi WinUI 3 yang tidak dikemas dan mandiri (SDK Aplikasi Windows 1,5 dan yang lebih baru). Aplikasi yang dipaketkan dan aplikasi yang bergantung pada kerangka kerja tidak mendukung PublishSingleFile. Lihat file EXE tunggal untuk properti MSBuild yang diperlukan.
Info selengkapnya tentang penyebaran yang bergantung pada kerangka kerja
Sebelum mengonfigurasi aplikasi yang bergantung pada kerangka kerja untuk penyebaran, untuk mempelajari selengkapnya tentang dependensi yang dibutuhkan aplikasi Anda saat menggunakan SDK Aplikasi Windows, tinjau arsitektur Deployment untuk SDK Aplikasi Windows.
Aplikasi kemasan
Jika Anda telah memilih untuk menggunakan aplikasi paket yang bergantung pada kerangka kerja (lihat gambaran umum Deployment), maka berikut adalah instruksi tentang cara menyebarkan runtime SDK Aplikasi Windows dengan aplikasi:
- panduan penyebaran SDK Aplikasi Windows untuk aplikasi paket yang bergantung pada kerangka kerja
- Mengelola implementasi MSIX Anda
Dikemas dengan lokasi eksternal atau aplikasi yang tidak dikemas
Jika Anda telah memilih untuk menggunakan aplikasi berbasis paket yang bergantung pada kerangka kerja dengan lokasi eksternal, atau aplikasi tanpa paket yang bergantung pada kerangka kerja (lihat gambaran umum Deployment), maka berikut adalah instruksi tentang cara menyebarkan SDK Aplikasi Windows runtime dengan aplikasi tersebut:
- Panduan Penyebaran SDK Aplikasi Windows untuk aplikasi yang bergantung pada framework yang dipaketkan dengan lokasi eksternal atau tidak dipaketkan
- Tutorial: Gunakan API bootstrapper dalam aplikasi yang dikemas dengan lokasi eksternal atau tidak dikemas yang menggunakan SDK Aplikasi Windows
Info selengkapnya tentang penyebaran yang mandiri
Lihat panduan penyebaran SDK Aplikasi Windows untuk aplikasi mandiri.
Note
PublishSingleFile (EXE satu file) mengharuskan aplikasi bersifat tanpa paket dan mandiri. Lihat EXE file tunggal untuk daftar lengkap properti MSBuild yang diperlukan.
Menginisialisasi SDK Aplikasi Windows
Cara Anda untuk menginisialisasi SDK Aplikasi Windows tergantung pada apakah, dan bagaimana, Anda mengemas aplikasi; dan cara Anda menyebarkan sehubungan dengan runtime SDK Aplikasi Windows. Gunakan bagian di bawah ini yang berlaku untuk aplikasi Anda.
Aplikasi kemasan
| Cara penyebaran aplikasi Anda | Cara menginisialisasi |
|---|---|
| Tergantung kerangka kerja | Lihat Memanggil API Penyebaran. |
| Mandiri | Tidak perlu inisialisasi. |
Aplikasi yang tidak dikemas, dan aplikasi yang dikemas dengan lokasi eksternal
| Cara penyebaran aplikasi Anda | Cara menginisialisasi |
|---|---|
| Tergantung kerangka kerja | Lihat Menggunakan API bootstrapper dalam aplikasi yang dikemas dengan lokasi eksternal atauyang tidak dikemas. |
| Mandiri | Lihat Memilih untuk tidak menggunakan (atau menggunakan) dukungan UndockedRegFreeWinRT otomatis. |
Pertimbangan arsitektur (x64, ARM64)
Saat menyebarkan aplikasi, Anda harus menyertakan biner untuk setiap arsitektur prosesor yang dibutuhkan pengguna Anda. Ini berlaku untuk mode penyebaran yang bergantung pada kerangka kerja dan mandiri.
Dukungan ARM64
Windows pada perangkat ARM (termasuk Surface Pro X, Surface Pro 11, dan Copilot+ PCs) menjalankan ARM64 secara asli. Meskipun emulasi x64 tersedia pada perangkat ARM64 Windows 11, biner ARM64 asli memberikan kinerja dan daya tahan baterai yang lebih baik — dan direkomendasikan jika Anda menginginkan pengalaman terbaik untuk beban kerja AI yang dijalankan di perangkat pada PC Copilot+.
Penyebaran ARM64 asli
Paket MSIX — Buat
.msixbundleyang mencakup arsitekturx64danARM64. Visual Studio menghasilkannya secara otomatis saat Anda membuat untuk beberapa platform. Store dan App Installer memilih arsitektur yang benar pada waktu penginstalan.Publikasi mandiri — Tentukan pengidentifikasi runtime (RID) untuk setiap arsitektur:
dotnet publish -c Release -r win-x64 --self-contained true dotnet publish -c Release -r win-arm64 --self-contained trueC++/WinRT — Bangun konfigurasi terpisah untuk
x64danARM64dalam solusi Visual Studio Anda.Aplikasi yang bergantung pada kerangka kerja — Saat menggunakan alat penginstal runtime SDK Aplikasi Windows, pastikan Anda menyediakan penginstal khusus arsitektur yang benar. SDK Aplikasi Windows mengirimkan alat penginstal terpisah untuk x64 dan ARM64.
Arm64EC — Migrasi bertahap untuk basis kode C/C++ besar
Jika aplikasi Anda memiliki basis kode asli (C/C++) besar, kompilasi ulang penuh ke ARM64 mungkin tidak praktis dalam satu langkah. Arm64EC (Kompatibel Emulasi) memungkinkan Anda mencampur kode x64 dan ARM64 dalam proses yang sama. Anda mengkompilasi ulang modul penting performa ke ARM64 asli sementara modul x64 yang tersisa berjalan di bawah emulasi — semuanya dalam satu biner.
| Approach | Paling cocok untuk | Kompromi |
|---|---|---|
| Kompilasi ulang ARM64 penuh | Aplikasi .NET murni, proyek C++ kecil | Performa terbaik; memerlukan semua dependensi agar kompatibel dengan ARM64 |
| Arm64EC | Aplikasi C/C++ besar, aplikasi dengan plugin khusus x64 atau DLL pihak ketiga | Migrasi inkremental; bagian yang ditiru berjalan lebih lambat daripada asli |
| x64 saja (ditimulasikan) | Aplikasi yang tidak dapat dikompilasi ulang dan tidak memerlukan performa puncak | Sederhana; mengurangi masa pakai baterai dan latensi yang lebih tinggi pada perangkat ARM64 |
Untuk informasi selengkapnya, lihat Arm64EC — Membangun dan memindah aplikasi untuk performa asli di Arm.
Emulasi (Prisma)
Windows 11 di ARM menggunakan lapisan emulasi yang disebut Prism untuk menjalankan aplikasi x64 dan x86 pada perangkat keras ARM64. Prism menerjemahkan instruksi x86/x64 ke ARM64 saat runtime, menyediakan kompatibilitas aplikasi luas tanpa memerlukan kompilasi ulang.
- emulasi x64 — Hanya tersedia di Windows 11 perangkat ARM64 (tidak Windows 10 di ARM).
- emulasi x86 — Tersedia di perangkat ARM64 Windows 10 dan Windows 11.
- Kinerja — Aplikasi yang diemulasi biasanya berjalan dengan kinerja yang memadai untuk beban kerja produktivitas, tetapi aplikasi dengan grafis intensif atau komputasi berat akan memperoleh manfaat besar dari versi ARM64 atau Arm64EC asli.
Petunjuk / Saran
Jika Anda hanya menargetkan x64, aplikasi Anda masih berjalan di perangkat ARM64 melalui emulasi Prism (hanya Windows 11). Namun, versi native ARM64 sangat disarankan untuk aplikasi produksi — aplikasi yang diemulasikan lebih boros baterai dan memiliki latensi yang lebih tinggi. Pada Copilot+ PCs, ARM64 asli dapat memberikan performa terbaik untuk beban kerja AI di perangkat.
Untuk pengajuan ke Store, unggah paket spesifik arsitektur atau bundel yang berisi keduanya. Store hanya memberikan arsitektur yang cocok ke setiap perangkat.
Topik terkait
- Gambaran Umum Penyebaran
- arsitektur penerapan pada SDK Aplikasi Windows
- panduan penyebaran SDK Aplikasi Windows untuk aplikasi paket yang bergantung pada kerangka kerja
- Mengelola implementasi MSIX Anda
- Panduan Penyebaran SDK Aplikasi Windows untuk aplikasi yang bergantung pada framework yang dipaketkan dengan lokasi eksternal atau tidak dipaketkan
- Tutorial: Gunakan API bootstrapper dalam aplikasi yang dikemas dengan lokasi eksternal atau tidak dikemas yang menggunakan SDK Aplikasi Windows
- panduan penyebaran SDK Aplikasi Windows untuk aplikasi mandiri
- Buat proyek WinUI pertama Anda
Gunakan SDK Aplikasi Windows di project
Windows developer