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


Функция MsiApplyPatchA (msi.h)

Для каждого продукта, указанного пакетом исправлений, который может получить исправление, функция MsiApplyPatch вызывает установку и задает свойство PATCH пути пакета исправлений.

Синтаксис

UINT MsiApplyPatchA(
  [in] LPCSTR      szPatchPackage,
  [in] LPCSTR      szInstallPackage,
  [in] INSTALLTYPE eInstallType,
  [in] LPCSTR      szCommandLine
);

Параметры

[in] szPatchPackage

Строка, завершающая значение NULL, указывающая полный путь к пакету исправлений.

[in] szInstallPackage

Если eInstallType задано значение INSTALLTYPE_NETWORK_IMAGE, этот параметр представляет собой строку, завершающую значение NULL, которая указывает путь к продукту, который должен быть исправлен. Установщик применяет исправление к каждому подходящему продукту, указанному в пакете исправлений, если szInstallPackage имеет значение NULL и eInstallType имеет значение INSTALLTYPE_DEFAULT.

Если eInstallType INSTALLTYPE_SINGLE_INSTANCE, установщик применяет исправление к продукту, указанному szInstallPackage. В этом случае другие подходящие продукты, перечисленные в пакете исправлений, игнорируются, а параметр szInstallPackage содержит строку, завершающую значение NULL, представляющую код продукта экземпляра для исправления. Для установки этого типа требуется установщик под управлением Windows Server 2003 или Windows XP.

[in] eInstallType

Этот параметр указывает тип установки для исправления.

Тип установки Значение
INSTALLTYPE_NETWORK_IMAGE
Указывает административную установку. В этом случае szInstallPackage необходимо задать путь к пакету. Значение 1 для INSTALLTYPE_NETWORK_IMAGE задает это значение для административной установки.
INSTALLTYPE_DEFAULT
Ищет систему для исправления продуктов. В этом случае szInstallPackage должно иметь значение 0.
INSTALLTYPE_SINGLE_INSTANCE
Исправление продукта, указанного szInstallPackage. szInstallPackage — это код продукта экземпляра для исправления. Для установки этого типа требуется установщик под управлением Windows Server 2003 или Windows XP с пакетом обновления 1 (SP1). Дополнительные сведения см. в установке нескольких экземпляров продуктов и исправлений.

[in] szCommandLine

Строка, завершающая значение NULL, указывающая параметры свойств командной строки. Дополнительные сведения о свойствах и настройке значений общедоступных свойств в командной строке. См. раздел "Примечания".

Возвращаемое значение

Ценность Значение
ERROR_SUCCESS
Функция успешно завершена.
ERROR_PATCH_PACKAGE_OPEN_FAILED
Не удалось открыть пакет исправлений.
ERROR_PATCH_PACKAGE_INVALID
Пакет исправлений недопустим.
ERROR_PATCH_PACKAGE_UNSUPPORTED
Пакет исправлений не поддерживается.
Ошибка, связанная с действием
См. коды ошибок.
ошибка инициализации
Произошла ошибка инициализации.

Замечания

Так как разделитель списка для преобразований, источников и исправлений является точкой с запятой, этот символ не должен использоваться для имен файлов или путей.

Примечание   

При применении небольшого обновления или дополнительно го обновления необходимо задать свойство ПЕРЕУСТАНОВКА в командной строке. Без этого свойства исправление регистрируется в системе, но не может обновлять файлы. Для исправлений, которые не используют настраиваемый тип действия 51 для автоматического задания свойств ПЕРЕУСТАНОВКИ и REINSTALLMODE, свойство ПЕРЕУСТАНОВКА должно быть явно задано с параметром szCommandLine. Задайте для свойства REINSTALL список компонентов, затронутых исправлением, или используйте практический параметр по умолчанию "ПЕРЕУСТАНОВКА=ВСЕ". Значением по умолчанию свойства REINSTALLMODE является "omus". Начиная с установщика Windows версии 3.0, свойство ПЕРЕУСТАНОВКА настраивается установщиком и не требуется устанавливать в командной строке.

 

Заметка

Заголовок msi.h определяет MsiApplyPatch как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Установщик Windows 5.0 в Windows Server 2012, Windows 8, Windows Server 2008 R2 или Windows 7. Установщик Windows 4.0 или установщик Windows 4.5 в Windows Server 2008 или Windows Vista. Установщик Windows в Windows Server 2003 или Windows XP. Сведения о минимальном пакете обновления Windows, требуемом версией установщика Windows, см. в разделе "Требования к установщику Windows Run-Time".
целевая платформа Виндоус
заголовка msi.h
библиотеки Msi.lib
DLL Msi.dll

См. также

коды ошибок

ошибка инициализации

Multiple-Package установки

не поддерживается в установщике Windows 2.0 и более ранних