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


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

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

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

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

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

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

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

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

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

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

    Заметка

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

     

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

    Файл Компонент_ Имя файла
    readme.txt Comp1 readme.txt
    ReadMe.txt Comp2 readme.txt

     

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

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