Freigeben über


MsiProvideAssemblyA-Funktion (msi.h)

Die MsiProvideAssembly-Funktion gibt den vollständigen Pfad zu einer Windows Installer-Komponente zurück, die eine Assembly enthält. Die Funktion fordert eine Quelle auf und führt alle erforderlichen Installationen durch. MsiProvideAssembly erhöht die Nutzungsanzahl für das Feature.

Syntax

UINT MsiProvideAssemblyA(
  [in]      LPCSTR  szAssemblyName,
  [in]      LPCSTR  szAppContext,
  [in]      DWORD   dwInstallMode,
  [in]      DWORD   dwAssemblyInfo,
  [out]     LPSTR   lpPathBuf,
  [in, out] LPDWORD pcchPathBuf
);

Parameter

[in] szAssemblyName

Der Assemblyname als Zeichenfolge.

[in] szAppContext

Für globale Assemblys auf NULL festgelegt. Legen Sie für private Assemblys szAppContext- auf den vollständigen Pfad der Anwendungskonfigurationsdatei oder auf den vollständigen Pfad der ausführbaren Datei der Anwendung fest, für die die Assembly privat gemacht wurde.

[in] dwInstallMode

Definiert den Installationsmodus. Dieser Parameter kann einer der folgenden Werte sein:

Wert Bedeutung
INSTALLMODE_DEFAULT
Stellen Sie die Komponente bereit, und führen Sie alle erforderlichen Installationen aus, um die Komponente bereitzustellen. Wenn die Schlüsseldatei einer Komponente im angeforderten Feature oder einem übergeordneten Feature fehlt, installieren Sie das Feature mit MsiReinstallFeature- neu, wobei die folgenden Flagbits festgelegt sind: REINSTALLMODE_FILEMISSING, REINSTALLMODE_FILEOLDERVERSION, REINSTALLMODE_FILEVERIFY, REINSTALLMODE_MACHINEDATA, REINSTALLMODE_USERDATA und REINSTALLMODE_SHORTCUT.
INSTALLMODE_EXISTING
Geben Sie die Komponente nur an, wenn das Feature vorhanden ist. Andernfalls wird ERROR_FILE_NOT_FOUND zurückgegeben.

Dieser Modus überprüft, ob die Schlüsseldatei der Komponente vorhanden ist.

INSTALLMODE_NODETECTION
Geben Sie die Komponente nur an, wenn das Feature vorhanden ist. Andernfalls wird ERROR_FILE_NOT_FOUND zurückgegeben.

Dieser Modus überprüft nur, ob die Komponente registriert ist, und überprüft nicht, ob die Schlüsseldatei der Komponente vorhanden ist.

INSTALLMODE_NOSOURCERESOLUTION
Geben Sie die Komponente nur an, wenn der Installationsstatus des Features INSTALLSTATE_LOCAL ist. Wenn der Featureinstallationsstatus INSTALLSTATE_SOURCE ist, geben Sie ERROR_INSTALL_SOURCE_ABSENT zurück. Andernfalls wird ERROR_FILE_NOT_FOUND zurückgegeben. Dieser Modus überprüft nur, ob die Komponente registriert ist, und überprüft nicht, ob die Schlüsseldatei vorhanden ist.
INSTALLMODE_NODETECTION_ANY
Geben Sie die Komponente an, wenn ein Feature von einem beliebigen installierten Produkt vorhanden ist. Andernfalls wird ERROR_FILE_NOT_FOUND zurückgegeben. Dieser Modus überprüft nur, ob die Komponente registriert ist, und überprüft nicht, ob die Schlüsseldatei der Komponente vorhanden ist. Diese Kennzeichnung ähnelt der INSTALLMODE_NODETECTION Kennzeichnung, mit der Ausnahme, dass wir mit dieser Kennzeichnung auf jedes Produkt überprüfen, das die Montage installiert hat, im Gegensatz zum letzten Produkt wie bei der INSTALLMODE_NODETECTION Kennzeichnung. Dieses Kennzeichen kann nur mit MsiProvideAssemblyverwendet werden.
Kombination aus den FLAGS "REINSTALLMODE"
Rufen Sie MsiReinstallFeature- auf, um das Feature mithilfe dieses Parameters für den parameter dwReinstallMode neu zu installieren, und stellen Sie dann die Komponente bereit.

[in] dwAssemblyInfo

Assemblyinformationen und Assemblytyp. Legen Sie diesen Wert auf einen der folgenden Werte fest.

Wert Bedeutung
MSIASSEMBLYINFO_NETASSEMBLY
0
.NET-Assembly
MSIASSEMBLYINFO_WIN32ASSEMBLY
1
Win32-Assembly

[out] lpPathBuf

Zeiger auf eine Variable, die den Pfad zur Komponente empfängt. Dieser Parameter kann null sein.

[in, out] pcchPathBuf

Zeigen Sie auf eine Variable, die die Größe des Puffers in Zeichen angibt, auf den der lpPathBuf-Parameter verweist. Bei eingaben ist dies die vollständige Größe des Puffers, einschließlich eines Leerzeichens für ein endendes NULL-Zeichen. Wenn der übergebene Puffer zu klein ist, enthält die zurückgegebene Anzahl nicht das endende Nullzeichen.

Wenn lpPathBuf- null ist, kann pcchPathBuf- null sein.

Rückgabewert

Wert Bedeutung
ERROR_BAD_CONFIGURATION
Die Konfigurationsdaten sind beschädigt.
ERROR_FILE_NOT_FOUND
Das Feature ist nicht vorhanden oder unterbrochen. Dieser Fehler wird für dwInstallMode = INSTALLMODE_EXISTING zurückgegeben.
ERROR_INSTALL_FAILURE
Fehler bei der Installation.
ERROR_INSTALL_NOTUSED
Die angeforderte Komponente ist auf dem Computer deaktiviert.
ERROR_INVALID_PARAMETER
An die Funktion wurde ein ungültiger Parameter übergeben.
ERROR_SUCCESS
Die Funktion wurde erfolgreich abgeschlossen.
ERROR_UNKNOWN_FEATURE
Die Feature-ID identifiziert kein bekanntes Feature.
ERROR_UNKNOWN_COMPONENT
Die Komponenten-ID gibt keine bekannte Komponente an.
ERROR_UNKNOWN_PRODUCT
Der Produktcode identifiziert kein bekanntes Produkt.
INSTALLSTATE_UNKNOWN
Ein nicht erkanntes Produkt oder ein Featurename wurde an die Funktion übergeben.
ERROR_MORE_DATA
Der Pufferüberlauf wird zurückgegeben.
ERROR_NOT_ENOUGH_MEMORY
Das System verfügt nicht über genügend Arbeitsspeicher, um den Vorgang abzuschließen. Verfügbar mit Windows Server 2003.
ERROR_INSTALL_SOURCE_ABSENT
Eine Quelle kann nicht erkannt werden.
 

Weitere Informationen finden Sie unter Angezeigte Fehlermeldungen.

Bemerkungen

Wenn die MsiProvideAssembly-Funktion erfolgreich ist, enthält der pcchPathBuf Parameter die Länge der Zeichenfolge in lpPathBuf.

Die option INSTALLMODE_EXISTING kann nicht in Kombination mit dem FLAG "REINSTALLMODE" verwendet werden.

Features mit Komponenten, die eine beschädigte Datei oder die falsche Version einer Datei enthalten, müssen vom Benutzer explizit neu installiert werden, oder indem die Anwendung MsiReinstallFeatureaufgerufen wird.

Anmerkung

Der msi.h-Header definiert MsiProvideAssembly 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 Code, der nicht codierungsneutral ist, 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
mindestens unterstützte 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 von einer Windows Installer-Version erforderlichen Windows-Service Pack finden Sie unter den Windows Installer-Run-Time Anforderungen.
Zielplattform- Fenster
Header- msi.h
Library Msi.lib
DLL- Msi.dll

Siehe auch

Component-Specific Funktionen

Multiple-Package Installationen