Compartir a través de


Función MsiProvideAssemblyA (msi.h)

La función MsiProvideAssembly devuelve la ruta de acceso completa a un componente de Windows Installer que contiene un ensamblado. La función solicita un origen y realiza cualquier instalación necesaria. MsiProvideAssembly incrementa el recuento de uso de la característica.

Sintaxis

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

Parámetros

[in] szAssemblyName

Nombre del ensamblado como una cadena.

[in] szAppContext

Se establece en NULL para los ensamblados globales. Para los ensamblados privados, establezca szAppContext en la ruta de acceso completa del archivo de configuración de la aplicación o en la ruta de acceso completa del archivo ejecutable de la aplicación a la que se ha hecho privado el ensamblado.

[in] dwInstallMode

Define el modo de instalación. Este parámetro puede ser uno de los siguientes valores.

Valor Significado
INSTALLMODE_DEFAULT
Proporcione el componente y realice cualquier instalación necesaria para proporcionar el componente. Si falta el archivo de clave de un componente en la característica solicitada o un elemento primario de la característica, vuelva a instalar la característica mediante MsiReinstallFeature con los siguientes bits de marca establecidos: REINSTALLMODE_FILEMISSING, REINSTALLMODE_FILEOLDERVERSION, REINSTALLMODE_FILEVERIFY, REINSTALLMODE_MACHINEDATA, REINSTALLMODE_USERDATA y REINSTALLMODE_SHORTCUT.
INSTALLMODE_EXISTING
Proporcione el componente solo si existe la característica. De lo contrario, devuelve ERROR_FILE_NOT_FOUND.

Este modo comprueba que el archivo de clave del componente existe.

INSTALLMODE_NODETECTION
Proporcione el componente solo si existe la característica. De lo contrario, devuelve ERROR_FILE_NOT_FOUND.

Este modo solo comprueba que el componente está registrado y no comprueba que existe el archivo de clave del componente.

INSTALLMODE_NOSOURCERESOLUTION
Proporcione el componente solo si el estado de instalación de la característica es INSTALLSTATE_LOCAL. Si el estado de instalación de la característica es INSTALLSTATE_SOURCE, devuelva ERROR_INSTALL_SOURCE_ABSENT. De lo contrario, devuelve ERROR_FILE_NOT_FOUND. Este modo solo comprueba que el componente está registrado y no comprueba que el archivo de clave existe.
INSTALLMODE_NODETECTION_ANY
Proporcione el componente si existe una característica desde cualquier producto instalado. De lo contrario, devuelve ERROR_FILE_NOT_FOUND. Este modo solo comprueba que el componente está registrado y no comprueba que existe el archivo de clave del componente. Esta marca es similar a la marca de INSTALLMODE_NODETECTION, excepto que con esta marca comprobamos para cualquier producto que haya instalado el ensamblado en lugar del último producto, como es el caso de la marca INSTALLMODE_NODETECTION. Esta marca solo se puede usar con MsiProvideAssembly.
combinación de las marcas REINSTALLMODE
Llame a MsiReinstallFeature para volver a instalar la característica mediante este parámetro para el parámetro dwReinstallMode y proporcione el componente.

[in] dwAssemblyInfo

Información de ensamblado y tipo de ensamblado. Establezca en uno de los valores siguientes.

Valor Significado
MSIASSEMBLYINFO_NETASSEMBLY
0
Ensamblado de .NET
MSIASSEMBLYINFO_WIN32ASSEMBLY
1
Ensamblado Win32

[out] lpPathBuf

Puntero a una variable que recibe la ruta de acceso al componente. Este parámetro puede ser NULL.

[in, out] pcchPathBuf

Puntero a una variable que especifica el tamaño, en caracteres, del búfer al que apunta el parámetro lpPathBuf. En la entrada, este es el tamaño completo del búfer, incluido un espacio para un carácter nulo de terminación. Si el búfer pasado es demasiado pequeño, el recuento devuelto no incluye el carácter nulo de terminación.

Si lpPathBuf es null, pcchPathBuf puede ser null.

Valor devuelto

Valor Significado
ERROR_BAD_CONFIGURATION
Los datos de configuración están dañados.
ERROR_FILE_NOT_FOUND
La característica está ausente o roto. Este error se devuelve para dwInstallMode = INSTALLMODE_EXISTING.
ERROR_INSTALL_FAILURE
Error en la instalación.
ERROR_INSTALL_NOTUSED
El componente que se solicita está deshabilitado en el equipo.
ERROR_INVALID_PARAMETER
Se pasó un parámetro no válido a la función .
ERROR_SUCCESS
La función se completó correctamente.
ERROR_UNKNOWN_FEATURE
El identificador de característica no identifica una característica conocida.
ERROR_UNKNOWN_COMPONENT
El identificador del componente no especifica un componente conocido.
ERROR_UNKNOWN_PRODUCT
El código del producto no identifica un producto conocido.
INSTALLSTATE_UNKNOWN
Se pasó un producto no reconocido o un nombre de característica a la función.
ERROR_MORE_DATA
Se devuelve el desbordamiento del búfer.
ERROR_NOT_ENOUGH_MEMORY
El sistema no tiene suficiente memoria para completar la operación. Disponible con Windows Server 2003.
ERROR_INSTALL_SOURCE_ABSENT
No se puede detectar un origen.
 

Para obtener más información, vea Mensajes de error mostrados.

Observaciones

Cuando la función msiProvideAssembly se realiza correctamente, el parámetro pcchPathBuf contiene la longitud de la cadena en lpPathBuf.

La opción INSTALLMODE_EXISTING no se puede usar en combinación con la marca REINSTALLMODE.

Las características con componentes que contienen un archivo dañado o la versión incorrecta de un archivo deben volver a instalarse explícitamente por el usuario o al hacer que el usuario llame a la aplicación MsiReinstallFeature.

Nota

El encabezado msi.h define MsiProvideAssembly como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows Installer 5.0 en Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 en Windows Server 2008 o Windows Vista. Windows Installer en Windows Server 2003 o Windows XP. Consulte Windows Installer Run-Time Requirements (Requisitos de Windows Installer) para obtener información sobre el Service Pack mínimo de Windows que requiere una versión de Windows Installer.
de la plataforma de destino de Windows
encabezado de msi.h
biblioteca de Msi.lib
DLL de Msi.dll

Consulte también

Component-Specific Functions

instalaciones de Multiple-Package