Partager via


MsiProvideAssemblyA, fonction (msi.h)

La fonction MsiProvideAssembly retourne le chemin complet d’un composant Windows Installer qui contient un assembly. La fonction demande une source et effectue toute installation nécessaire. MsiProvideAssembly incrémente le nombre d’utilisations de la fonctionnalité.

Syntaxe

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

Paramètres

[in] szAssemblyName

Nom de l’assembly sous forme de chaîne.

[in] szAppContext

Défini sur Null pour les assemblys globaux. Pour les assemblys privés, définissez szAppContext sur le chemin complet du fichier de configuration de l’application ou sur le chemin d’accès complet du fichier exécutable de l’application à laquelle l’assembly a été rendu privé.

[in] dwInstallMode

Définit le mode d’installation. Ce paramètre peut être l’une des valeurs suivantes.

Valeur Signification
INSTALLMODE_DEFAULT
Fournissez le composant et effectuez toute installation nécessaire pour fournir le composant. Si le fichier clé d’un composant dans la fonctionnalité demandée ou un parent de fonctionnalité est manquant, réinstallez la fonctionnalité à l’aide de MsiReinstallFeature avec les bits d’indicateur suivants définis : REINSTALLMODE_FILEMISSING, REINSTALLMODE_FILEOLDERVERSION, REINSTALLMODE_FILEVERIFY, REINSTALLMODE_MACHINEDATA, REINSTALLMODE_USERDATA et REINSTALLMODE_SHORTCUT.
INSTALLMODE_EXISTING
Fournissez le composant uniquement si la fonctionnalité existe. Sinon, retournez ERROR_FILE_NOT_FOUND.

Ce mode vérifie que le fichier de clé du composant existe.

INSTALLMODE_NODETECTION
Fournissez le composant uniquement si la fonctionnalité existe. Sinon, retournez ERROR_FILE_NOT_FOUND.

Ce mode vérifie uniquement que le composant est inscrit et ne vérifie pas que le fichier de clé du composant existe.

INSTALLMODE_NOSOURCERESOLUTION
Fournissez le composant uniquement si l’état d’installation de la fonctionnalité est INSTALLSTATE_LOCAL. Si l’état d’installation de la fonctionnalité est INSTALLSTATE_SOURCE, retournez ERROR_INSTALL_SOURCE_ABSENT. Sinon, retournez ERROR_FILE_NOT_FOUND. Ce mode vérifie uniquement que le composant est inscrit et ne vérifie pas que le fichier de clé existe.
INSTALLMODE_NODETECTION_ANY
Indiquez le composant si une fonctionnalité existe à partir d’un produit installé. Sinon, retournez ERROR_FILE_NOT_FOUND. Ce mode vérifie uniquement que le composant est inscrit et ne vérifie pas que le fichier de clé du composant existe. Cet indicateur est similaire à l’indicateur de INSTALLMODE_NODETECTION, sauf qu’avec cet indicateur, nous vérifions tous les produits qui ont installé l’assembly plutôt que le dernier produit, comme c’est le cas avec l’indicateur de INSTALLMODE_NODETECTION. Cet indicateur ne peut être utilisé qu’avec MsiProvideAssembly.
combinaison des indicateurs REINSTALLMODE
Appelez MsiReinstallFeature pour réinstaller la fonctionnalité à l’aide de ce paramètre pour le paramètre dwReinstallMode, puis fournissez le composant.

[in] dwAssemblyInfo

Informations d’assembly et type d’assembly. Définissez l’une des valeurs suivantes.

Valeur Signification
MSIASSEMBLYINFO_NETASSEMBLY
0
Assembly .NET
MSIASSEMBLYINFO_WIN32ASSEMBLY
1
Win32 Assembly

[out] lpPathBuf

Pointeur vers une variable qui reçoit le chemin d’accès au composant. Ce paramètre peut être null.

[in, out] pcchPathBuf

Pointeur vers une variable qui spécifie la taille, en caractères, de la mémoire tampon pointée par le paramètre lpPathBuf. Lors de l’entrée, il s’agit de la taille complète de la mémoire tampon, y compris un espace pour un caractère null de fin. Si la mémoire tampon passée est trop petite, le nombre retourné n’inclut pas le caractère null de fin.

Si lpPathBuf a la valeur Null, pcchPathBuf peut être null.

Valeur de retour

Valeur Signification
ERROR_BAD_CONFIGURATION
Les données de configuration sont endommagées.
ERROR_FILE_NOT_FOUND
La fonctionnalité est absente ou interrompue. Cette erreur est retournée pour dwInstallMode = INSTALLMODE_EXISTING.
ERROR_INSTALL_FAILURE
Échec de l’installation.
ERROR_INSTALL_NOTUSED
Le composant demandé est désactivé sur l’ordinateur.
ERROR_INVALID_PARAMETER
Un paramètre non valide a été passé à la fonction.
ERROR_SUCCESS
La fonction s’est terminée correctement.
ERROR_UNKNOWN_FEATURE
L’ID de fonctionnalité n’identifie pas une fonctionnalité connue.
ERROR_UNKNOWN_COMPONENT
L’ID de composant ne spécifie pas de composant connu.
ERROR_UNKNOWN_PRODUCT
Le code du produit n’identifie pas un produit connu.
INSTALLSTATE_UNKNOWN
Un produit non reconnu ou un nom de fonctionnalité a été passé à la fonction.
ERROR_MORE_DATA
Le dépassement de mémoire tampon est retourné.
ERROR_NOT_ENOUGH_MEMORY
Le système n’a pas suffisamment de mémoire pour terminer l’opération. Disponible avec Windows Server 2003.
ERROR_INSTALL_SOURCE_ABSENT
Impossible de détecter une source.
 

Pour plus d’informations, consultez Afficher les messages d’erreur.

Remarques

Lorsque la fonction MsiProvideAssembly réussit, le paramètre pcchPathBuf contient la longueur de la chaîne dans lpPathBuf.

L’option INSTALLMODE_EXISTING ne peut pas être utilisée en combinaison avec l’indicateur REINSTALLMODE.

Les fonctionnalités avec des composants qui contiennent un fichier endommagé ou la version incorrecte d’un fichier doivent être réinstallées explicitement par l’utilisateur, ou en ayant l’appel de l’application MsiReinstallFeature.

Note

L’en-tête msi.h définit MsiProvideAssembly comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows Installer 5.0 sur Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 sur Windows Server 2008 ou Windows Vista. Windows Installer sur Windows Server 2003 ou Windows XP. Consultez la configuration requise de Windows Installer Run-Time pour plus d’informations sur le service pack Windows minimal requis par une version de Windows Installer.
plateforme cible Windows
d’en-tête msi.h
bibliothèque Msi.lib
DLL Msi.dll

Voir aussi

Component-Specific Functions

Multiple-Package Installations