Share via


Funzione MsiProvideAssemblyA (msi.h)

La funzione MsiProvideAssembly restituisce il percorso completo di un componente Windows Installer che contiene un assembly. La funzione richiede un'origine ed esegue qualsiasi installazione necessaria. MsiProvideAssembly incrementa il numero di utilizzo per la funzionalità.

Sintassi

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

Parametri

[in] szAssemblyName

Nome dell'assembly come stringa.

[in] szAppContext

Impostare su Null per gli assembly globali. Per gli assembly privati, impostare szAppContext sul percorso completo del file di configurazione dell'applicazione o sul percorso completo del file eseguibile dell'applicazione a cui è stato reso privato l'assembly.

[in] dwInstallMode

Definisce la modalità di installazione. Questo parametro può avere uno dei valori seguenti.

Valore Significato
INSTALLMODE_DEFAULT
Specificare il componente ed eseguire qualsiasi installazione necessaria per fornire il componente. Se il file chiave di un componente nella funzionalità richiesta o un padre di funzionalità manca, reinstallare la funzionalità usando MsiReinstallFeature con i bit di flag seguenti impostati: REINSTALLMODE_FILEMISSING, REINSTALLMODE_FILEOLDERVERSION, REINSTALLMODE_FILEVERIFY, REINSTALLMODE_MACHINEDATA, REINSTALLMODE_USERDATA e REINSTALLMODE_SHORTCUT.
INSTALLMODE_EXISTING
Specificare il componente solo se la funzionalità esiste. In caso contrario, restituire ERROR_FILE_NOT_FOUND.

Questa modalità verifica che il file chiave del componente esista.

INSTALLMODE_NODETECTION
Specificare il componente solo se la funzionalità esiste. In caso contrario, restituire ERROR_FILE_NOT_FOUND.

Questa modalità controlla solo che il componente è registrato e non verifica che il file di chiave del componente esista.

INSTALLMODE_NOSOURCERESOLUTION
Specificare il componente solo se lo stato di installazione della funzionalità è INSTALLSTATE_LOCAL. Se lo stato di installazione della funzionalità è INSTALLSTATE_SOURCE, restituire ERROR_INSTALL_SOURCE_ABSENT. In caso contrario, restituire ERROR_FILE_NOT_FOUND. Questa modalità controlla solo che il componente è registrato e non verifica che il file di chiave esista.
INSTALLMODE_NODETECTION_ANY
Specificare il componente se esiste una funzionalità da qualsiasi prodotto installato. In caso contrario, restituire ERROR_FILE_NOT_FOUND. Questa modalità controlla solo che il componente è registrato e non verifica che il file di chiave del componente esista. Questo flag è simile al flag INSTALLMODE_NODETECTION, ad eccezione del fatto che con questo flag viene controllato qualsiasi prodotto che ha installato l'assembly anziché l'ultimo prodotto, come avviene con il flag di INSTALLMODE_NODETECTION. Questo flag può essere usato solo con MsiProvideAssembly.
combinazione dei flag REINSTALLMODE
Chiamare MsiReinstallFeature per reinstallare la funzionalità usando questo parametro per il parametro dwReinstallMode e quindi specificare il componente.

[in] dwAssemblyInfo

Informazioni sull'assembly e tipo di assembly. Impostare su uno dei valori seguenti.

Valore Significato
MSIASSEMBLYINFO_NETASSEMBLY
0
Assembly .NET
MSIASSEMBLYINFO_WIN32ASSEMBLY
1
Win32 Assembly

[out] lpPathBuf

Puntatore a una variabile che riceve il percorso del componente. Questo parametro può essere null.

[in, out] pcchPathBuf

Puntatore a una variabile che specifica le dimensioni, in caratteri, del buffer a cui punta il parametro lpPathBuf . In input, questa è la dimensione completa del buffer, incluso uno spazio per un carattere null terminante. Se il buffer passato è troppo piccolo, il conteggio restituito non include il carattere null terminante.

Se lpPathBuf è null, pcchPathBuf può essere null.

Valore restituito

Valore Significato
ERROR_BAD_CONFIGURATION
I dati di configurazione sono danneggiati.
ERROR_FILE_NOT_FOUND
La funzionalità è assente o interrotta. Questo errore viene restituito per dwInstallMode = INSTALLMODE_EXISTING.
ERROR_INSTALL_FAILURE
Operazione di installazione non riuscita.
ERROR_INSTALL_NOTUSED
Il componente richiesto è disabilitato nel computer.
ERROR_INVALID_PARAMETER
Un parametro non valido è stato passato alla funzione.
ERROR_SUCCESS
La funzione è stata completata correttamente.
ERROR_UNKNOWN_FEATURE
L'ID funzionalità non identifica una funzionalità nota.
ERROR_UNKNOWN_COMPONENT
L'ID componente non specifica un componente noto.
ERROR_UNKNOWN_PRODUCT
Il codice prodotto non identifica un prodotto noto.
INSTALLSTATE_UNKNOWN
Un prodotto non riconosciuto o un nome di funzionalità è stato passato alla funzione.
ERROR_MORE_DATA
Viene restituito il overflow del buffer.
ERROR_NOT_ENOUGH_MEMORY
Il sistema non dispone di memoria sufficiente per completare l'operazione. Disponibile con Windows Server 2003.
ERROR_INSTALL_SOURCE_ABSENT
Impossibile rilevare un'origine.
 

Per altre informazioni, vedere Messaggi di errore visualizzati.

Commenti

Quando la funzione MsiProvideAssembly ha esito positivo, il parametro pcchPathBuf contiene la lunghezza della stringa in lpPathBuf.

L'opzione INSTALLMODE_EXISTING non può essere usata in combinazione con il flag REINSTALLMODE.

Le funzionalità con componenti che contengono un file danneggiato o la versione errata di un file devono essere reinstallate in modo esplicito dall'utente oppure tramite la chiamata dell'applicazione MsiReinstallFeature.

Nota

L'intestazione msi.h definisce MsiProvideAssembly come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows Installer 5.0 in Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 in Windows Server 2008 o Windows Vista. Windows Installer in Windows Server 2003 o Windows XP. Per informazioni sul Service Pack minimo di Windows Richiesto da una versione di Windows Installer, vedere i requisiti di Windows Installer Run-Time.
Piattaforma di destinazione Windows
Intestazione msi.h
Libreria Msi.lib
DLL Msi.dll

Vedi anche

Funzioni specifiche del componente

Installazioni multiple-package