다음을 통해 공유


MsiProvideAssemblyW 함수(msi.h)

MsiProvideAssembly 함수는 어셈블리가 포함된 Windows Installer 구성 요소의 전체 경로를 반환합니다. 함수는 원본을 묻는 메시지를 표시하고 필요한 설치를 수행합니다. MsiProvideAssembly 는 기능에 대한 사용 횟수를 증분합니다.

구문

UINT MsiProvideAssemblyW(
  [in]      LPCWSTR szAssemblyName,
  [in]      LPCWSTR szAppContext,
  [in]      DWORD   dwInstallMode,
  [in]      DWORD   dwAssemblyInfo,
  [out]     LPWSTR  lpPathBuf,
  [in, out] LPDWORD pcchPathBuf
);

매개 변수

[in] szAssemblyName

문자열인 어셈블리 이름입니다.

[in] szAppContext

전역 어셈블리에 대해 null로 설정합니다. 프라이빗 어셈블리의 경우 szAppContext 를 애플리케이션 구성 파일의 전체 경로 또는 어셈블리가 프라이빗으로 설정된 애플리케이션의 실행 파일의 전체 경로로 설정합니다.

[in] dwInstallMode

설치 모드를 정의합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
INSTALLMODE_DEFAULT
구성 요소를 제공하고 구성 요소를 제공하는 데 필요한 모든 설치를 수행합니다. 요청된 기능의 구성 요소 키 파일 또는 기능 부모가 없는 경우 msiReinstallFeature 를 사용하여 REINSTALLMODE_FILEMISSING, REINSTALLMODE_FILEOLDERVERSION, REINSTALLMODE_FILEVERIFY, REINSTALLMODE_MACHINEDATA, REINSTALLMODE_USERDATA 및 REINSTALLMODE_SHORTCUT 설정된 플래그 비트를 사용하여 기능을 다시 설치합니다.
INSTALLMODE_EXISTING
기능이 있는 경우에만 구성 요소를 제공합니다. 그렇지 않으면 ERROR_FILE_NOT_FOUND 반환합니다.

이 모드는 구성 요소의 키 파일이 있는지 확인합니다.

INSTALLMODE_NODETECTION
기능이 있는 경우에만 구성 요소를 제공합니다. 그렇지 않으면 ERROR_FILE_NOT_FOUND 반환합니다.

이 모드는 구성 요소가 등록되었는지 확인하고 구성 요소의 키 파일이 있는지 확인하지 않습니다.

INSTALLMODE_NOSOURCERESOLUTION
기능의 설치 상태가 INSTALLSTATE_LOCAL 경우에만 구성 요소를 제공합니다. 기능 설치 상태가 INSTALLSTATE_SOURCE 경우 ERROR_INSTALL_SOURCE_ABSENT 반환합니다. 그렇지 않으면 ERROR_FILE_NOT_FOUND 반환합니다. 이 모드는 구성 요소가 등록되어 있는지 확인하고 키 파일이 있는지 확인하지 않습니다.
INSTALLMODE_NODETECTION_ANY
설치된 제품에서 기능이 있는 경우 구성 요소를 제공합니다. 그렇지 않으면 ERROR_FILE_NOT_FOUND 반환합니다. 이 모드는 구성 요소가 등록되었는지 확인하고 구성 요소의 키 파일이 있는지 확인하지 않습니다. 이 플래그는 INSTALLMODE_NODETECTION 플래그와 유사합니다. 단, 이 플래그를 사용하면 INSTALLMODE_NODETECTION 플래그의 경우와 마찬가지로 마지막 제품과 달리 어셈블리를 설치한 모든 제품에 대해 검사. 이 플래그는 MsiProvideAssembly에서만 사용할 수 있습니다.
REINSTALLMODE 플래그의 조합
MsiReinstallFeature를 호출하여 dwReinstallMode 매개 변수에 이 매개 변수를 사용하여 기능을 다시 설치한 다음 구성 요소를 제공합니다.

[in] dwAssemblyInfo

어셈블리 정보 및 어셈블리 유형입니다. 다음 값 중 하나로 설정합니다.

의미
MSIASSEMBLYINFO_NETASSEMBLY
0
.NET 어셈블리
MSIASSEMBLYINFO_WIN32ASSEMBLY
1
Win32 어셈블리

[out] lpPathBuf

구성 요소의 경로를 수신하는 변수에 대한 포인터입니다. 이 매개 변수는 null일 수 있습니다.

[in, out] pcchPathBuf

lpPathBuf 매개 변수가 가리키는 버퍼의 크기를 문자 단위로 지정하는 변수에 대한 포인터입니다. 입력할 때 종료되는 null 문자에 대한 공간을 포함하여 버퍼의 전체 크기입니다. 전달된 버퍼가 너무 작으면 반환된 개수에 종료 null 문자가 포함되지 않습니다.

lpPathBuf가 null인 경우 pcchPathBuf는 null일 수 있습니다.

반환 값

의미
ERROR_BAD_CONFIGURATION
구성 데이터가 손상되었습니다.
ERROR_FILE_NOT_FOUND
기능이 없거나 손상되었습니다. 이 오류는 dwInstallMode = INSTALLMODE_EXISTING 대해 반환됩니다.
ERROR_INSTALL_FAILURE
설치에 실패했습니다.
ERROR_INSTALL_NOTUSED
컴퓨터에서 요청되는 구성 요소를 사용할 수 없습니다.
ERROR_INVALID_PARAMETER
잘못된 매개 변수가 함수에 전달되었습니다.
ERROR_SUCCESS
함수가 성공적으로 완료되었습니다.
ERROR_UNKNOWN_FEATURE
기능 ID는 알려진 기능을 식별하지 않습니다.
ERROR_UNKNOWN_COMPONENT
구성 요소 ID는 알려진 구성 요소를 지정하지 않습니다.
ERROR_UNKNOWN_PRODUCT
제품 코드는 알려진 제품을 식별하지 않습니다.
INSTALLSTATE_UNKNOWN
인식할 수 없는 제품 또는 기능 이름이 함수에 전달되었습니다.
ERROR_MORE_DATA
버퍼 오버플로가 반환됩니다.
ERROR_NOT_ENOUGH_MEMORY
시스템에 작업을 완료하는 데 충분한 메모리가 없습니다. Windows Server 2003에서 사용할 수 있습니다.
ERROR_INSTALL_SOURCE_ABSENT
원본을 검색할 수 없습니다.
 

자세한 내용은 표시된 오류 메시지를 참조하세요.

설명

MsiProvideAssembly 함수가 성공하면 pcchPathBuf 매개 변수에 lpPathBuf의 문자열 길이가 포함됩니다.

INSTALLMODE_EXISTING 옵션은 REINSTALLMODE 플래그와 함께 사용할 수 없습니다.

손상된 파일 또는 잘못된 버전의 파일이 포함된 구성 요소가 있는 기능은 사용자가 명시적으로 다시 설치하거나 애플리케이션에서 MsiReinstallFeature를 호출하도록 해야 합니다.

참고

msi.h 헤더는 MSiProvideAssembly를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Server 2012, Windows 8, Windows Server 2008 R2 또는 Windows 7의 Windows Installer 5.0. Windows Server 2008 또는 Windows Vista의 Windows Installer 4.0 또는 Windows Installer 4.5. Windows Server 2003 또는 Windows XP의 Windows Installer. Windows Installer 버전에 필요한 최소 Windows 서비스 팩에 대한 자세한 내용은 Windows Installer 런타임 요구 사항을 참조하세요.
대상 플랫폼 Windows
헤더 msi.h
라이브러리 Msi.lib
DLL Msi.dll

추가 정보

구성 요소별 함수

다중 패키지 설치