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ò essere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Specificare il componente ed eseguire qualsiasi installazione necessaria per fornire il componente. Se manca il file di chiave di un componente nella funzionalità richiesta o un elemento padre di funzionalità, 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. |
|
Specificare il componente solo se la funzionalità esiste. In caso contrario, restituire ERROR_FILE_NOT_FOUND.
Questa modalità verifica che il file di chiave del componente esista. |
|
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. |
|
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. |
|
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 controlliamo la presenza di qualsiasi prodotto che ha installato l'assembly anziché l'ultimo prodotto, come nel caso del flag INSTALLMODE_NODETECTION. Questo flag può essere usato solo con MsiProvideAssembly. |
|
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 |
---|---|
|
Assembly .NET |
|
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. Nell'input, si tratta delle dimensioni complete del buffer, incluso uno spazio per un carattere Null di terminazione. Se il buffer passato è troppo piccolo, il conteggio restituito non include il carattere Null di terminazione.
Se lpPathBuf è null, pcchPathBuf può essere null.
Valore restituito
Valore | Significato |
---|---|
|
I dati di configurazione sono danneggiati. |
|
La funzionalità è assente o interrotta. Questo errore viene restituito per dwInstallMode = INSTALLMODE_EXISTING. |
|
L'installazione non è riuscita. |
|
Il componente richiesto è disabilitato nel computer. |
|
Alla funzione è stato passato un parametro non valido. |
|
La funzione è stata completata correttamente. |
|
L'ID funzionalità non identifica una funzionalità nota. |
|
L'ID componente non specifica un componente noto. |
|
Il codice prodotto non identifica un prodotto noto. |
|
Un prodotto non riconosciuto o un nome di funzionalità è stato passato alla funzione. |
|
Viene restituito l'overflow del buffer. |
|
Il sistema non dispone di memoria sufficiente per completare l'operazione. Disponibile con Windows Server 2003. |
|
Impossibile rilevare un'origine. |
Per altre informazioni, vedere Messaggi di errore visualizzati.
Osservazioni
Quando la funzione MsiProvideAssembly ha esito positivo, il parametro pcchPathBuf contiene la lunghezza della stringa in lpPathBuf.
L'opzione INSTALLMODE_EXISTING non può essere utilizzata 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 facendo in modo che l'applicazione chiami 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 del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
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 Requisiti di windows Run-Time. |
piattaforma di destinazione | Finestre |
intestazione |
msi.h |
libreria |
Msi.lib |
dll | Msi.dll |
Vedere anche
funzioni di