Уменьшение размера исправления

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

Установщик Windows 2.0: Не поддерживается. Начиная с установщика Windows 3.0 установщик выборочно сохраняет базовые сведения о файлах при их обновлении.

Установщик Windows предоставляет три метода обновления и обслуживания приложений: небольшие обновления, незначительные обновления и крупные обновления. Небольшое обновление также называется обновлением быстрого исправления (QFE), а незначительное обновление также называется обновлением пакета обновления (SP). Обычно основное обновление удаляет предыдущее приложение и устанавливает новое приложение. Установщик Windows может доставлять сведения об обслуживании приложений в виде пакета установки (.msi файла) или пакета исправлений (MSP-файл).

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

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

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

Установщик выполняет следующие действия, чтобы свести к минимуму размер кэша базовых показателей.

  • Для каждого приложения поддерживается не более двух базовых показателей: базовый план файла как первоначально выпущенный (RTM) и базовый план файла при последнем незначительном обновлении (пакет обновления).
  • Файл не добавляется в кэш, пока не будет исправлен. Базовый кэш выполняется при копировании при записи.
  • Если приложение никогда не обновлялось, в базовом кэше нет файлов.
  • Когда последнее обслуживание приложения было незначительным обновлением (пакетом обновления), приложение находится на базовом уровне, и на компьютере может присутствовать не более двух копий файла. Одна копия файла находится в целевом каталоге установки. Другая копия может находиться в базовом кэше RTM.
  • Когда последнее обслуживание приложения было небольшим обновлением (QFE), приложение не находится на базовом уровне, и на компьютере может присутствовать не более трех копий файла. Первая копия файла находится в целевом каталоге установки. Вторая копия файла находится в базовом кэше RTM. Последняя копия файла находится в последнем базовом кэше.
  • Базовый кэш приложения удаляется при удалении продукта.

Начиная с установщика Windows версии 3.0, установщик может использовать базовый кэш при применении исправлений к приложению. Сведения о базовых показателях можно использовать для применения разностного исправления или для отменить изменения файла в предыдущей версии во время удаления исправления. Это может позволить авторам исправлений воспользоваться преимуществами небольших разностных исправлений. Если установщик обнаружит, что разностное исправление не может быть применено к целевому файлу, установщик может попытаться использовать файл, сохраненный в кэше базовых показателей, в качестве отправной точки. Установщик прибегает к запросу исходного источника установки только после проверки всех возможностей в кэше.

Соблюдение следующих рекомендаций поможет авторам исправлений использовать исправления установщика Windows версии 3.0 и базовый кэш для создания небольших разностных исправлений:

  • Создание исправлений, включающих таблицу MsiPatchSequence. Эта таблица необходима для использования кэша базовых показателей и доступна начиная с установщика Windows версии 3.0.
  • Не устанавливайте политику, которая запрещает кэширование базовых показателей. Значение политики MaxPatchCacheSize указывает максимальный процент используемого дискового пространства. Если для политики MaxPatchCacheSize задано значение 0, дополнительные файлы не сохраняются в кэше базовых показателей. Если политика не задана, по умолчанию можно использовать не более 10 % дискового пространства. Если общий размер кэша достигает максимального процента места на диске, дополнительные файлы не сохраняются. Политика не влияет на файлы, которые уже были сохранены. Даже если кэширование отключено, установщик может использовать существующие кэши базовых показателей продукта.
  • Если первое примененное исправление включает таблицу MsiPatchSequence, для приложения включено кэширование.
  • Если какое-либо исправление в транзакции обслуживания не включает таблицу MsiPatchSequence, кэширование включено для приложения только в том случае, если к продукту успешно применено незначительное обновление (пакет обновления), включающее таблицу MsiPatchSequence.
  • Создайте пакет исправлений с помощью средств создания исправлений, таких какMsimsp.exeи PATCHWIZ.DLL.
  • Всегда нацеливает исправления для версии RTM приложения или для дополнительной версии обновления (пакета обновления) приложения. Целевые объекты, указанные в таблице TargetImages файла свойств создания исправлений (PCP), должны быть проверка точками продукта, определенными первыми тремя полями свойства ProductVersion.
  • Никогда не нацеливает исправления на небольшие образы обновлений. Целевые объекты для создания исправления не должны включать предыдущие образы обновления небольшого размера.