Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La rimozione di un pacchetto MSIX per un utente non sempre elimina immediatamente i file di staging. Windows gestisce i pacchetti di staging monitorando se gli utenti, gli altri pacchetti o i processi in esecuzione fanno ancora riferimento a essi.
Usare i termini seguenti per descrivere la durata del pacchetto:
- Stage: inserire il payload di un pacchetto in un archivio di installazione gestito da Windows.
- Registra: rendere disponibile un pacchetto in staging per un utente e creare le integrazioni specifiche dell'utente.
- Rimuovere o annullare la registrazione di un utente: rimuovere la registrazione e le integrazioni di un utente.
- Destage: eliminare il payload del pacchetto in staging dall'archiviazione.
Un'operazione di rimozione può annullare la registrazione di un pacchetto senza eseguire immediatamente il destaging.
Riferimenti forti
Windows non può eseguire il destage di un pacchetto mentre rimane un riferimento forte. Le fonti affidabili comuni includono:
- Registrazione esplicita del pacchetto di un utente.
- Provisioning che rende disponibile il pacchetto agli utenti.
- Dipendenza statica dichiarata tramite
PackageDependency. - Dipendenza dall’host runtime.
- Dipendenza dinamica persistente che solo il pacchetto può soddisfare.
- Processo che usa attualmente il contenuto del pacchetto.
- Pin di sistema.
- Appartenenza al prodotto UUP (Unified Update Platform).
I pacchetti framework rimangono in genere in staging perché altri pacchetti dipendono da essi. Più versioni del pacchetto framework possono rimanere affiancate durante la transizione delle applicazioni tra le versioni.
Riferimenti deboli
Un riferimento debole non mantiene in modo indipendente un pacchetto in stato di staging. Le relazioni tra risorse e pacchetti sono l'esempio principale. Se rimangono solo riferimenti deboli, Windows può rimuovere il pacchetto e le relative relazioni deboli.
Cosa accade durante la rimozione
Quando si rimuove un pacchetto, Windows rimuove prima di tutto la registrazione utente applicabile e le integrazioni specifiche dell'utente. Valuta quindi se rimangono riferimenti forti:
- Se rimane un riferimento forte, il pacchetto rimane in stato staged.
- Se non rimangono riferimenti forti, il pacchetto diventa idoneo per la destaging.
- Windows rimuove il payload quando la distribuzione verrà nuovamente valutata e raccoglie il pacchetto senza riferimenti.
La destaging può verificarsi al termine dell'operazione di rimozione. Alcune modifiche di riferimento si verificano all'esterno di un'operazione di distribuzione, quindi la pulizia del payload non è sempre immediata.
Se un processo usa il pacchetto, la rimozione richiede in genere l'arresto dell'applicazione. Per evitare di interrompere il processo, chiamare PackageManager.RemovePackageAsync con RemovalOptions.DeferRemovalWhenPackagesAreInUse. Windows completa la rimozione dopo che il pacchetto non è più in uso.
Comportamento di PowerShell
Remove-AppxPackage rimuove una registrazione. Non usare l'assenza di una registrazione utente come prova che Windows ha già eliminato ogni file di staging.
Usare Get-AppxPackage -AllUsers e i comandi di provisioning quando si diagnosticano i riferimenti mantenuti da altri utenti o dal provisioning. La rimozione di un pacchetto con provisioning influisce sulle registrazioni future, ma non rimuove le registrazioni già esistenti per gli utenti.