Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Quitar un paquete MSIX para un usuario no siempre elimina inmediatamente sus archivos almacenados provisionalmente. Windows administra paquetes almacenados provisionalmente mediante el seguimiento de si los usuarios, otros paquetes o los procesos en ejecución siguen haciendo referencia a ellos.
Utilice los siguientes términos al describir el ciclo de vida del paquete:
- Preparar: colocar la carga útil de un paquete en un almacén de instalación administrado por Windows.
- Registrar: hacer que un paquete preparado esté disponible para un usuario y crear sus integraciones específicas de usuario.
- Quitar o anular el registro: quitar el registro y las integraciones de un usuario.
- Destage: elimine del almacenamiento la carga útil del paquete en staging.
Una operación de eliminación puede anular el registro de un paquete sin despreparar lo inmediatamente.
Referencias fuertes
Windows no puede despreparar un paquete mientras siga existiendo una referencia fuerte. Entre las referencias sólidas comunes se incluyen:
- Registro explícito de un paquete de un usuario.
- Aprovisionamiento que hace que el paquete esté disponible para los usuarios.
- Una dependencia estática declarada a través de
PackageDependency. - Una dependencia del entorno de ejecución del host.
- Dependencia dinámica persistente que solo puede satisfacer el paquete.
- Proceso que actualmente usa el contenido del paquete.
- Un PIN del sistema.
- Pertenencia al producto Unified Update Platform (UUP).
Los paquetes de marco de trabajo suelen permanecer preparados porque otros paquetes dependen de ellos. Varias versiones del paquete framework pueden permanecer en paralelo mientras las aplicaciones pasan entre versiones.
Referencias parciales
Una referencia débil no mantiene por sí sola un paquete preparado. Las relaciones de paquete de recursos son el ejemplo principal. Si solo quedan referencias débiles, Windows puede quitar el paquete y sus relaciones débiles.
¿Qué ocurre durante la desinstalación?
Al quitar un paquete, Windows quita primero el registro de usuario aplicable y las integraciones específicas del usuario. A continuación, evalúa si permanecen referencias fuertes:
- Si queda una referencia fuerte, el paquete permanece preparado.
- Si no quedan referencias fuertes, el paquete pasa a ser elegible para despreparar.
- Windows quita la carga útil cuando la implementación evalúa a continuación y recopila el paquete sin referenciar.
La despreparación puede producirse después de que la operación de eliminación se complete. Algunos cambios de referencia se producen fuera de una operación de implementación, por lo que la limpieza del payload no siempre es inmediata.
Si un proceso usa el paquete, la desinstalación normalmente solicita que se cierre la aplicación. Para evitar interrumpir el proceso, llame a PackageManager.RemovePackageAsync con RemovalOptions.DeferRemovalWhenPackagesAreInUse. Windows completa la eliminación después de que el paquete ya no esté en uso.
Comportamiento de PowerShell
Remove-AppxPackage quita un registro. No use la ausencia de un registro de usuario como prueba de que Windows ya ha eliminado todos los archivos almacenados provisionalmente.
Utilice Get-AppxPackage -AllUsers y los comandos de aprovisionamiento al diagnosticar las referencias retenidas por otros usuarios o por el aprovisionamiento del dispositivo. Quitar un paquete aprovisionado afecta a los registros futuros, pero no quita los registros que ya existen para los usuarios.