Поделиться через


Разностные обновления для пакетов приложений MSIX

Общие сведения об обновлениях пакета приложений MSIX

При создании пакета приложения MSIX создается файл манифеста, содержащий сведения, связанные с файлами, включенными в пакет приложения MSIX. Во время создания пакета создается единица метаданных и хранится в пакете MSIX или MSIXbundle, что позволяет частям пакета однозначно определяться в Windows. Позже во время обновления Windows может использовать этот файл метаданных, чтобы сравнить старый пакет с новым пакетом и определить вещи, которые необходимо скачать на устройство. Учитывая, что эти метаданные позволяют однозначно определить части пакета, это означает, что механизм разностного обновления полностью работает от любой версии пакета к любой другой версии пакета (если исходный пакет имеет более низкую версию, чем целевой пакет).

Все начинается с файла AppxBlockMap.xml (указанные выше метаданные). Файл AppxBlockMap.xml — это XML-документ, содержащий двухмерный список сведений о файлах в пакете. Первое измерение содержит основные сведения о файле (например, имя и размер), а второе измерение предоставляет хэши SHA2-256 каждого 64 КБ сегмента этого файла (так называемого "блока").

Первый хэш представляет первый блок 64 КБ файла, а второй хэш представляет оставшиеся 35 КБ, если файл равен 101188 байтам.

Во время обновления, если второй блок этого файла был изменен, хэш также будет обновлен, чтобы отразить этот факт. Компонент загрузки понимает это и будет извлекать только второй блок и повторно использовать первый без изменений блок из старого пакета.

Кроме того, если весь файл не изменился (который определяется полным набором блоков, не изменяющихся), этот файл можно повторно использовать из существующего пакета, что приводит к значительной экономии для пользователей Windows 10.

Обновление до более новых версий

При установке более новой версии пакета приложения MSIX файл манифеста сравнивается и изменяются блоки файлов. При обновлении пакета приложений MSIX до более новой версии извлекаются только измененные файлы, уменьшая потребление пропускной способности, если обновленные приложения находятся в общей сетевой папке или вне организации.

Обновление до более ранних версий

При установке более старой версии пакета приложения MSIX сначала сравнивается манифестный файл, а затем определяются модифицированные блоки данных. По мере обновления пакета приложений MSIX до более старой версии извлекаются только измененные файлы, уменьшая потребление пропускной способности, если обновленные приложения находятся на сетевом ресурсе или вне организации.

Оптимизация возможностей обновления

Доставку или установку пакета приложения MSIX на устройство можно настроить для улучшения взаимодействия с пользователями. При развертывании приложения устройство можно настроить для обновления приложения после закрытия приложения или принудительного закрытия приложения и обновления приложения.

PowerShell

Установка пакета приложения MSIX на устройство с помощью PowerShell осуществляется через командлет add-appxpackage. Этот командлет содержит следующие параметры, которые изменяют установку или обновление пользовательского интерфейса пакета приложения MSIX.

Параметр Описание
-ОтложитьРегистрациюКогдаПакетыИспользуются Указывает, что этот командлет будет предотвращать обновление пакета приложения MSIX, пока приложение открыто у пользователя.
-ПринудительноеЗавершениеПриложения Указывает, что этот командлет заставляет все активные процессы, связанные с пакетом или его зависимостями, завершить работу
Принудительное обновление с любой версии Указывает, что пакет приложения MSIX будет принудительно выполнять постановку или регистрацию определенной версии пакета, независимо от того, уже поставлена или зарегистрирована более высокая версия.
-InstallAllResources Указывает, что командлет принудительно развертывает все пакеты ресурсов, указанные из аргумента связки. Это переопределяет проверку применимости ресурсов подсистемы развертывания и принудительно выполняет промежуточное выполнение всех пакетов ресурсов.
-RetainFilesOnFailure В случае сбоя развертывания, если этот параметр имеет значение True, файлы, созданные на целевом компьютере во время установки, не удаляются.
-Обновлять Указывает, что добавляемый пакет является обновлением пакета зависимостей. Пакет зависимостей удаляется при удалении родительского приложения. Если он не указан, пакет не будет удален при удалении родительского приложения.

Полный список параметров, доступных для этого командлета, см. в статье PowerShell о надстройке appxpackage.