Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Удаление пакета MSIX для пользователя не всегда немедленно удаляет его подготовленные файлы. Windows управляет промежуточными пакетами путем отслеживания того, ссылаются ли пользователи, другие пакеты или запущенные процессы на них.
При описании времени существования пакета используйте следующие термины:
- Поместить: Поместите полезные данные пакета в хранилище установки, управляемое Windows.
- Зарегистрировать: Сделайте подготовленный пакет доступным для пользователя и создайте пользовательские интеграции.
- Удалить или отменить регистрацию: Удалить регистрацию пользователя и его интеграции.
- Destage: Удалить полезную нагрузку подготовленного пакета из хранилища.
Операция удаления может отменять регистрацию пакета без немедленного извлечения из промежуточного хранилища.
Сильные ссылки
Windows не может выгрузить пакет, пока остается сильная ссылка. К общим сильным ссылкам относятся:
- Явно выполненная регистрация пакета пользователя.
- Подготовка ресурсов, которая делает пакет доступным для пользователей.
- Статическая зависимость, объявленная через
PackageDependency. - Зависимость от среды выполнения хоста.
- Сохраняемая динамическая зависимость, которую может удовлетворить только пакет.
- Процесс, который в настоящее время использует содержимое пакета.
- Системный PIN-код.
- Принадлежность к продукту Unified Update Platform (UUP).
Пакеты платформы обычно остаются подготовленными, так как другие пакеты зависят от них. Несколько версий пакетов платформы могут оставаться параллельно во время перехода приложений между версиями.
Слабые ссылки
Слабая ссылка сама по себе не поддерживает пакет в staged-состоянии. Связи между пакетами ресурсов являются основным примером. Если остаются только слабые ссылки, Windows может удалить пакет и его слабые зависимости.
Что происходит во время удаления
При удалении пакета Windows сначала удаляет соответствующую регистрацию пользователя и пользовательские интеграции. Затем он оценивает, остаются ли строгие ссылки:
- Если сохраняется сильная ссылка, пакет остается в промежуточном состоянии.
- Если не осталось надежных ссылок, пакет становится доступным для дестейджинга.
- Windows удаляет полезную нагрузку при следующей оценке развертывания и удаляет пакет, на который больше нет ссылок.
Выгрузка из промежуточного хранилища может произойти после завершения операции удаления. Некоторые ссылочные изменения происходят вне операции развертывания, поэтому очистка payload не всегда происходит немедленно.
Если процесс использует пакет, удаление обычно запрашивает завершение работы приложения. Чтобы избежать прерывания процесса, вызовите PackageManager.RemovePackageAsync с removeOptions.DeferRemovalWhenPackagesAreInUse. Windows завершает удаление после того, как пакет больше не используется.
Поведение PowerShell
Remove-AppxPackage удаляет регистрацию. Не используйте отсутствие регистрации пользователя в качестве доказательства того, что Windows уже удалила каждый подготовленный к удалению файл.
Используйте Get-AppxPackage -AllUsers и команды подготовки при диагностике ссылок, удерживаемых другими пользователями или при инициализации устройств. Удаление подготовленного (предустановленного) пакета влияет на будущие регистрации, но не удаляет регистрации, которые уже существуют для пользователей.