Csomagregisztráció és élettartam

Ha eltávolít egy MSIX-csomagot egy felhasználó számára, az nem mindig törli azonnal az előkészített fájlokat. A Windows úgy kezeli az előkészített csomagokat, hogy nyomon követi, a felhasználók, más csomagok vagy futó folyamatok továbbra is hivatkoznak-e rájuk.

A csomag élettartamának leírásához használja a következő kifejezéseket:

  • Előkészítés: Helyezze a csomag tartalmát egy Windows által felügyelt telepítési tárolóba.
  • Regisztrálás: Előkészített csomag elérhetővé tétele a felhasználó számára, és a felhasználóspecifikus integrációk létrehozása.
  • Eltávolítás vagy regisztráció megszüntetése: A felhasználó regisztrációjának és integrációinak eltávolítása.
  • Destage: Törölje az előkészített csomag hasznos terhét a tárolóból.

Az eltávolítási művelet anélkül törölheti a csomag regisztrációját, hogy azonnal eltávolítaná a futtatási környezetből.

Megbízható referenciák

A Windows nem tudja visszavonni a csomagot az átmeneti állapotból, amíg erős hivatkozás marad érvényben. Gyakori erős hivatkozások a következők:

  • A felhasználó explicit csomagregisztrációja.
  • Üzembe helyezés, amely elérhetővé teszi a csomagot a felhasználók számára.
  • Az PackageDependency használatával deklarált statikus függőség.
  • gazda-futtatókörnyezeti függőség.
  • Tartós dinamikus függőség, amelyet csak a csomag képes kielégíteni.
  • Egy folyamat, amely jelenleg a csomag tartalmát használja.
  • Rendszer PIN-kód.
  • Az Egyesített frissítési platform (UUP) termék tagsága.

A keretrendszercsomagok általában staged állapotban maradnak, mert más csomagok függenek tőlük. Több keretrendszercsomag-verzió is egymás mellett maradhat, miközben az alkalmazások egyik verzióról a másikra térnek át.

Gyenge hivatkozások

A gyenge hivatkozás önállóan nem tartja a csomagot szakaszos állapotban. Az erőforráscsomag-kapcsolatok az elsődleges példa. Ha csak gyenge hivatkozások maradnak, Windows eltávolíthatja a csomagot és gyenge kapcsolatait.

Mi történik az eltávolítás során?

Amikor eltávolít egy csomagot, Windows először eltávolítja a megfelelő felhasználói regisztrációt és a felhasználóspecifikus integrációkat. Ezután kiértékeli, hogy maradnak-e erős hivatkozások:

  1. Ha erős hivatkozás marad, a csomag átmeneti tárolásban marad.
  2. Ha nem maradnak erős hivatkozások, a csomag jogosult lesz az átmeneti tárolóból való eltávolításra.
  3. A Windows eltávolítja a csomagtartalmat, amikor a telepítés legközelebb kiértékeli és összegyűjti a nem hivatkozott csomagot.

A destaging az eltávolítási művelet befejeződése után fordulhat elő. Néhány referenciamódosítás az üzembe helyezési műveleten kívül történik, így a payload törlése nem mindig azonnali.

Ha egy folyamat a csomagot használja, az eltávolítás általában az alkalmazás bezárását kéri. A folyamat megszakításának elkerülése érdekében hívja meg a PackageManager.RemovePackageAsync parancsot RemovalOptions.DeferRemovalWhenPackagesAreInUse használatával. Windows befejezi az eltávolítást, miután a csomag már nincs használatban.

PowerShell-viselkedés

Remove-AppxPackage eltávolít egy regisztrációs bejegyzést. Ne használja annak bizonyítékaként, hogy a Windows már törölte az összes előkészített fájlt, hogy a felhasználó nincs regisztrálva.

Használja a Get-AppxPackage -AllUsers és a kiépítési parancsokat a más felhasználók vagy az eszközkiépítés által tárolt hivatkozások diagnosztizálásakor. A kiépített csomag eltávolítása hatással van a jövőbeli regisztrációkra, de nem távolítja el a felhasználók számára már létező regisztrációkat.