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


Функция 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
Пакет исправлений не поддерживается.
Ошибка, связанная с действием
См . коды ошибок.
Ошибка инициализации
Произошла ошибка при инициализации.

Комментарии

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

Примечание  

Необходимо задать свойство REINSTALL в командной строке при применении небольшого обновления или дополнительного обновления. Без этого свойства исправление регистрируется в системе, но не может обновлять файлы. Для исправлений, которые не используют пользовательский тип действия 51 для автоматической настройки свойств REINSTALL и REINSTALLMODE , свойство REINSTALL должно быть явно задано с параметром szCommandLine . Задайте свойство REINSTALL , чтобы получить список функций, затронутых исправлением, или используйте практический параметр по умолчанию "REINSTALL=ALL". Значение по умолчанию свойства REINSTALLMODE — "omus". Начиная с установщика Windows версии 3.0 свойство REINSTALL настраивается установщиком и его не нужно задавать в командной строке.

 

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Установщик 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.
Целевая платформа Windows
Header msi.h
Библиотека Msi.lib
DLL Msi.dll

См. также раздел

Код ошибки

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

Установка с несколькими пакетами

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