Pendaftaran paket dan masa pakai

Menghapus paket MSIX untuk pengguna tidak selalu segera menghapus file yang di-stage. Windows mengelola paket bertahap dengan melacak apakah pengguna, paket lain, atau proses yang sedang berjalan masih mereferensikannya.

Gunakan istilah berikut saat menjelaskan masa pakai paket:

  • Tahap: Tempatkan payload paket di penyimpanan penginstalan yang dikelola Windows.
  • Daftarkan: Menyediakan paket bertahap untuk pengguna dan membuat integrasi khusus penggunanya.
  • Menghapus atau membatalkan registrasi pengguna: Menghapus registrasi dan integrasi pengguna.
  • Destage: Hapus payload paket yang di-stage dari penyimpanan.

Operasi penghapusan dapat membatalkan registrasi paket tanpa segera melakukan destaging.

Referensi tepercaya

Windows tidak dapat menghapus staging paket sementara referensi yang kuat tetap ada. Referensi kuat umum meliputi:

  • Pendaftaran paket secara eksplisit oleh pengguna.
  • Penyediaan yang membuat paket tersedia untuk pengguna.
  • Dependensi statis dideklarasikan melalui PackageDependency.
  • Dependensi host-runtime.
  • Dependensi dinamis persisten yang hanya dapat dipenuhi oleh paket.
  • Proses yang saat ini menggunakan konten paket.
  • Pin sistem.
  • Keanggotaan produk Unified Update Platform (UUP).

Paket kerangka kerja biasanya tetap dalam status staged karena paket lain bergantung padanya. Beberapa versi paket framework dapat tetap berdampingan saat aplikasi beralih antar versi.

Referensi Lemah

Referensi yang lemah tidak secara independen menjaga paket tetap dalam status staged. Hubungan antara sumber daya dan paket adalah contoh utama. Jika hanya referensi lemah yang tersisa, Windows dapat menghapus paket dan hubungannya yang lemah.

Apa yang terjadi selama penghapusan

Saat Anda menghapus paket, Windows terlebih dahulu menghapus pendaftaran pengguna dan integrasi khusus pengguna yang berlaku. Kemudian sistem mengevaluasi apakah referensi yang kuat tetap ada:

  1. Jika referensi yang kuat tetap ada, paket tetap dalam status staged.
  2. Jika tidak ada referensi yang kuat yang tersisa, paket menjadi layak untuk didestage.
  3. Windows menghapus payload saat penyebaran berikutnya mengevaluasi dan mengumpulkan paket yang tidak direferensikan.

Destaging dapat terjadi setelah operasi penghapusan selesai. Beberapa perubahan referensi terjadi di luar operasi penyebaran, sehingga pembersihan payload tidak selalu segera.

Jika proses menggunakan paket, penghapusan biasanya meminta penutupan aplikasi. Untuk menghindari interupsi proses, panggil PackageManager.RemovePackageAsync dengan RemovalOptions.DeferRemovalWhenPackagesAreInUse. Windows menyelesaikan penghapusan setelah paket tidak lagi digunakan.

Perilaku PowerShell

Remove-AppxPackage menghapus pendaftaran. Jangan gunakan tidak adanya pendaftaran pengguna sebagai bukti bahwa Windows telah menghapus setiap file yang dipentaskan.

Gunakan Get-AppxPackage -AllUsers dan perintah provisi saat mendiagnosis referensi yang dipegang oleh pengguna lain atau oleh provisi perangkat. Menghapus paket yang diprovisikan memengaruhi registrasi di masa mendatang tetapi tidak menghapus registrasi yang sudah ada untuk pengguna.