Создание пакета исправлений
Разработчики создают пакет исправлений, создавая файл создания исправлений и используя 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, которая не учитывает регистр и проваливается.
При использовании модулей слияния в установке убедитесь, что номера последовательности файлов и макет соответствуют приведенным выше рекомендациям.