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.
Use los siguientes términos al describir la duración del paquete:
- Preparar: Coloque el contenido de un paquete en un almacén de instalación administrado por Windows.
- Registrar: haga que un paquete preparado esté disponible para un usuario y cree sus integraciones específicas del usuario.
- Eliminar o cancelar el registro: Eliminar 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 retirarlo del entorno de ensayo inmediatamente.
Referencias fuertes
Windows no puede retirar un paquete del almacenamiento intermedio mientras permanezca 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 del producto Unified Update Platform (UUP).
Normalmente, los paquetes de framework permanecen en preparación 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 un paquete en preparación de forma independiente. Las relaciones de paquete de recursos son el ejemplo principal. Si solo permanecen referencias débiles, Windows puede quitar el paquete y sus dependencias 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 sigue siendo una referencia fuerte, el paquete permanece almacenado provisionalmente.
- Si no quedan referencias fuertes, el paquete pasa a ser apto para el desetapado.
- Windows quita la carga útil la próxima vez que la implementación evalúe y recopile el paquete sin referencia.
El desetapado puede producirse después de que se complete la operación de retirada. 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 una inscripción. 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 comandos de aprovisionamiento al diagnosticar referencias mantenidas por otros usuarios o por el aprovisionamiento de dispositivos. La eliminación de un paquete aprovisionado afecta a las inscripciones futuras, pero no quita las inscripciones que ya existen para los usuarios.