Freigeben über


MsiApplyPatchA-Funktion (msi.h)

Für jedes Produkt, das im Patchpaket als berechtigt aufgeführt ist, um den Patch zu erhalten, ruft die MsiApplyPatch-Funktion eine Installation auf und legt die PATCH-Eigenschaft auf den Pfad des Patchpakets fest.

Syntax

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

Parameter

[in] szPatchPackage

Eine NULL-Zeichenfolge, die den vollständigen Pfad zum Patchpaket angibt.

[in] szInstallPackage

Wenn eInstallType auf INSTALLTYPE_NETWORK_IMAGE festgelegt ist, ist dieser Parameter eine NULL-Zeichenfolge, die einen Pfad zum Produkt angibt, das gepatcht werden soll. Das Installationsprogramm wendet den Patch auf jedes berechtigte Produkt an, das im Patchpaket aufgeführt ist, wenn szInstallPackage auf NULL und eInstallType auf INSTALLTYPE_DEFAULT festgelegt ist.

Wenn eInstallType INSTALLTYPE_SINGLE_INSTANCE ist, wendet das Installationsprogramm den Patch auf das durch szInstallPackage angegebene Produkt an. In diesem Fall werden andere berechtigte Produkte, die im Patchpaket aufgeführt sind, ignoriert, und der parameter szInstallPackage enthält die null-beendete Zeichenfolge, die den Produktcode der zu patchende instance darstellt. Für diese Art der Installation ist das Installationsprogramm mit Windows Server 2003 oder Windows XP erforderlich.

[in] eInstallType

Dieser Parameter gibt den Typ der zu patchenden Installation an.

Installationstyp Bedeutung
INSTALLTYPE_NETWORK_IMAGE
Gibt eine Administratorinstallation an. In diesem Fall muss szInstallPackage auf einen Paketpfad festgelegt werden. Der Wert 1 für INSTALLTYPE_NETWORK_IMAGE legt dies für eine Administratorinstallation fest.
INSTALLTYPE_DEFAULT
Durchsucht das System nach zu patchenden Produkten. In diesem Fall muss szInstallPackage 0 sein.
INSTALLTYPE_SINGLE_INSTANCE
Patchen Sie das von szInstallPackage angegebene Produkt. szInstallPackage ist der Produktcode des zu patchenden instance. Diese Art der Installation erfordert das Installationsprogramm, das Windows Server 2003 oder Windows XP mit SP1 ausführt. Weitere Informationen finden Sie unter Installieren mehrerer Instanzen von Produkten und Patches.

[in] szCommandLine

Eine NULL-beendete Zeichenfolge, die Befehlszeileneigenschafteneinstellungen angibt. Weitere Informationen finden Sie unter Informationen zu Eigenschaften und Festlegen von Werten für öffentliche Eigenschaften in der Befehlszeile. Weitere Informationen finden Sie im Abschnitt mit den Hinweisen.

Rückgabewert

Wert Bedeutung
ERROR_SUCCESS
Die Funktion wurde erfolgreich abgeschlossen.
ERROR_PATCH_PACKAGE_OPEN_FAILED
Das Patchpaket konnte nicht geöffnet werden.
ERROR_PATCH_PACKAGE_INVALID
Das Patchpaket ist ungültig.
ERROR_PATCH_PACKAGE_UNSUPPORTED
Das Patchpaket wird nicht unterstützt.
Fehler im Zusammenhang mit einer Aktion
Weitere Informationen finden Sie unter Fehlercodes.
Initialisierungsfehler
Initialisierungsfehler.

Bemerkungen

Da das Listentrennzeichen für Transformationen, Quellen und Patches ein Semikolon ist, sollte dieses Zeichen nicht für Dateinamen oder Pfade verwendet werden.

Hinweis  

Sie müssen die REINSTALL-Eigenschaft in der Befehlszeile festlegen, wenn Sie ein kleines Update oder einen kleinen Upgradepatch anwenden. Ohne diese Eigenschaft wird der Patch auf dem System registriert, kann jedoch keine Dateien aktualisieren. Für Patches, die keinen benutzerdefinierten Aktionstyp 51 zum automatischen Festlegen der Eigenschaften REINSTALL und REINSTALLMODE verwenden, muss die REINSTALL-Eigenschaft explizit mit dem szCommandLine-Parameter festgelegt werden. Legen Sie die REINSTALL-Eigenschaft fest, um die vom Patch betroffenen Features aufzulisten, oder verwenden Sie die praktische Standardeinstellung „REINSTALL=ALL“. Der Standardwert der REINSTALLMODE-Eigenschaft lautet „omus“. Ab Windows Installer Version 3.0 wird die REINSTALL-Eigenschaft vom Installationsprogramm konfiguriert und muss nicht über die Befehlszeile festgelegt werden.

 

Hinweis

Der msi.h-Header definiert MsiApplyPatch als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Installer 5.0 unter Windows Server 2012, Windows 8, Windows Server 2008 R2 oder Windows 7. Windows Installer 4.0 oder Windows Installer 4.5 unter Windows Server 2008 oder Windows Vista. Windows Installer unter Windows Server 2003 oder Windows XP. Informationen zum mindestens erforderlichen Windows Service Pack für eine Windows Installer-Version finden Sie unter Windows Installer – Laufzeitanforderungen.
Zielplattform Windows
Kopfzeile msi.h
Bibliothek Msi.lib
DLL Msi.dll

Weitere Informationen

Fehlercodes

Initialisierungsfehler

Installationen mit mehreren Paketen

In Windows Installer 2.0 und früher nicht unterstützt