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

Разработчики создают пакет исправлений, создавая файл создания исправлений и используя Msimsp.exe для вызова функции UiCreatePatchPackageEx в Patchwiz.dll. Msimsp.exe и Patchwiz.dll предоставляются в пакете SDK установщика Windows. Дополнительные сведения см. в разделе Пример исправления небольшого обновления.

Так как применение исправления к пакету установщика Windows приводит к установке исходных источников с помощью нового файла .msi, новый файл .msi должен оставаться совместимым с макетом исходного источника.

При создании пакета исправлений необходимо использовать несжатый образ установки, чтобы создать исправление, например административный образ или несжатый образ установки с компакт-диска. Кроме того, необходимо соблюдать следующие ограничения:

  • Не перемещайте файлы из одной папки в другую.

  • Не перемещайте файлы из одного шкафа в другой.

  • Не изменяйте порядок файлов в шкафу.

  • Не изменяйте порядковый номер существующих файлов. Порядковый номер — это значение, указанное в столбце Последовательности таблицы файлов.

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

  • Не изменяйте первичные ключи в таблице файлов между исходной и новой версиями файла .msi.

    Примечание

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

     

  • Не создавайте пакет с ключами таблицы файлов , которые отличаются только в случае, например, избегайте следующего примера таблицы.

    File Компонент_ FileName
    readMe.txt Comp1 readMe.txt
    ReadMe.txt Comp2 readMe.txt

     

    Установщик Windows может разрешить предыдущий пример таблицы, если Comp1 и Comp2 установлены в разных каталогах, но вы не сможете использовать Msimsp.exe или Patchwiz.dll для создания исправления для пакета. Msimsp.exe и Patchwiz.dll вызов Makecab.exe, который не учитывает регистр и завершается сбоем.

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