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