Пакеты исправлений

Исправление установщика Windows (MSP-файл) — это файл, используемый для доставки обновлений в приложения установщика Windows. Исправление представляет собой автономный пакет, содержащий все сведения, необходимые для обновления приложения. Пакет исправлений (MSP-файл) может быть гораздо меньше, чем пакет установщика Windows (.msi файл) для всего обновленного приложения. Дополнительные сведения о доставке небольших обновлений для приложений см. в статье Уменьшение размера исправлений.

Пакет исправлений содержит фактические обновления приложения и описывает, какие версии приложения могут получать исправление. Исправления содержат по крайней мере два преобразования базы данных. Одно преобразование обновляет сведения в базе данных установки приложения. Другое преобразование добавляет сведения, которые установщик использует для исправления файлов. Установщик использует сведения, предоставляемые преобразованиями, для применения файлов исправлений, хранящихся в потоке cab-файлов пакета исправлений. Пакет исправлений не имеет такой базы данных, как пакет установки (.msi файл).

Начиная с установщика Windows версии 3.0 пакеты исправлений могут содержать сведения, описывающие последовательность исправлений для исправления относительно других обновлений в таблице MsiPatchSequence , а также дополнительные описательные сведения в таблице MsiPatchMetadata .

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

Начиная с установщика Windows 3.0 пользователи, не являющиеся администраторами, могут применять исправления к приложениям, управляемым пользователем, после того, как исправление будет утверждено администратором как доверенное. Дополнительные сведения о том, как это сделать, см. в статье Исправление Per-User управляемых приложений. Другой способ — использовать исправление учетных записей пользователей с минимальными привилегиями.

Примечание

Если политика AllowLockdownPatch задана, пользователи без прав администратора могут применить исправление к существующему приложению при выполнении установки с повышенными привилегиями. Этот метод не рекомендуется, так как он позволяет применять ненадежные исправления к приложению, которое может выполняться с повышенными привилегиями.

 

Пакеты исправлений состоят из следующих частей. Дополнительные сведения о создании пакетов исправлений см. в разделе Создание пакета исправлений.

Поток сводной информации

Поток сводной информации пакета исправлений содержит сведения об идентификаторе и назначении исправления.

В потоке сводной информации содержится как минимум следующее:

  • Идентификатор GUID, который однозначно идентифицирует исправление. К ИДЕНТИФИКАТОРу GUID для этого исправления добавляется список идентификаторов GUID для более ранних исправлений, которые были заменены этим исправлением.
  • Список кодов продуктов, разделенных точкой с запятой, для допустимых целевых объектов для этого исправления.
  • Список имен вложенных журналов преобразования с разделителями с запятой в порядке их обработки.
  • Список источников для этого исправления, разделенный точкой с запятой.

Преобразование подчиненного журналов

Пакет исправлений содержит преобразования, которые могут добавлять или удалять файлы, записи реестра, пользовательские интерфейсы и настройки. Преобразования включаются в пакет в качестве дочерних журналов. Пакет исправлений содержит два преобразования для каждой целевой базы данных. Одним из преобразований являются фактические обновления базы данных установки, которые создаются на основе различий между исходным и обновленным образами пакета установки. Другое преобразование добавляет записи в таблицы Patch, PatchPackage, Media, InstallExecuteSequence и AdminExecuteSequence . Сведения в подтораге связывают их с определенными UpgradeCode, ProductCode, ProductVersion и ProductLanguage. Пакет исправлений, который можно применить к нескольким целевым объектам, содержит несколько пар этих преобразований.

Поток cab-файлов

Поток cab-файлов, включенный в исправление, может содержать файлы следующих типов:

  • Файлы исправлений, содержащие сведения, необходимые для изменения старой версии файла на новую. Для обновления одной или нескольких старых версий файла можно использовать один файл исправлений.
  • В приложение добавляются дополнительные файлы, которые отсутствуют в старой версии.
  • Полный файл замены. В редких случаях, когда новая версия файла меньше, чем исправление, необходимое для обновления старой версии этого файла, новый файл может быть полностью включен. Это новые файлы, устанавливаемые поверх старых версий.

Создание пакета исправлений