Windows XP에서 애플리케이션의 프라이빗 사용을 위한 Win32 어셈블리 설치

이 항목의 절차에서는 Win32 어셈블리를 설치하는 Windows Installer 패키지를 만드는 방법을 식별합니다. 패키지는 어셈블리 및 애플리케이션 매니페스트 파일을 애플리케이션에서 사용하는 작성 폴더에 설치합니다. 애플리케이션 매니페스트는 프라이빗 어셈블리에 대한 애플리케이션의 종속성을 지정합니다. 패키지를 설치한 후 프라이빗 어셈블리는 애플리케이션을 단독으로 사용할 수 있습니다. 애플리케이션 매니페스트에 지정된 어셈블리 종속성은 어셈블리 매니페스트 파일에 지정된 다른 전역 어셈블리 종속성을 재정의합니다(이 애플리케이션의 경우).

계속하기 전에 어셈블리 없이 Windows Installer 패키지를 작성하는 방법을 이해하는 것이 좋습니다. 자세한 내용은 설치 예제를 참조하세요.

Windows XP에 프라이빗 어셈블리 설치

  1. Win32 어셈블리 및 애플리케이션 매니페스트 파일을 포함하는 Windows Installer 구성 요소를 정의합니다. 이 구성 요소에는 어셈블리를 사용하여 항상 설치하거나 제거해야 하는 다른 리소스가 포함될 수 있습니다. 이 절차의 나머지 단계에서는 설치 데이터베이스를 작성하여 이 구성 요소를 설치하는 방법을 설명합니다.
  2. Win32 어셈블리 및 애플리케이션 매니페스트 파일이 포함된 구성 요소의 구성 요소 테이블에 행을 추가합니다. 이 구성 요소 코드에 유효한 Windows Installer GUID 를 입력합니다. 자세한 내용은 구성 요소 코드 변경구성 요소 규칙이 손상되면 어떻게 됩니까?를 참조하세요.
  3. 설치 관리자는 MsiAssembly 테이블의 File_Application 필드에 지정된 파일이 포함된 폴더에 어셈블리 매니페스트 파일을 복사합니다.
  4. 구성 요소를 Windows 설치 관리자 기능에 연결하는 FeatureComponents 테이블에 행을 추가합니다. 자세한 내용은 구성 요소 및 기능을 참조하세요. Windows Installer 기능은 사용자가 인식할 수 있는 애플리케이션 기능의 일부여야 합니다. 어셈블리는 사용자가 이 기능을 선택하거나 애플리케이션에서 오류가 발생할 때 활성화됩니다. 어셈블리가 추가 기능을 정의하는 경우 기능 특성에 대한 기능 테이블에 추가 행을 추가합니다. 병합 모듈을 작성하는 경우에는 이 단계가 필요하지 않습니다.
  5. 병렬 어셈블리의 경우 바인딩 및 활성화 정보(예: COM 클래스, 인터페이스 및 형식 라이브러리)는 레지스트리가 아닌 매니페스트 파일에 저장됩니다. 프라이빗 어셈블리는 이 정보를 어셈블리 매니페스트에 저장합니다. 병렬 어셈블리를 지원하는 시스템에서 설치 관리자는 확장 테이블, 동사 테이블, TypeLib 테이블, MIME 테이블, 클래스 테이블, ProgId 테이블AppId 테이블에 입력된 구성 요소에 대한 정보 처리를 건너뜁니다. 바인딩 및 활성화 정보는 병렬 어셈블리 공유를 지원하지 않는 시스템에서 사용하기 위해 테이블에 입력할 수 있습니다.
  6. 병렬 설치는 어셈블리를 전역적으로 등록하지 않습니다. SelfReg 테이블에 자체 등록 정보가 입력되면 설치 관리자가 구성 요소 자체 등록을 건너뜁니다. 셀프 등록 정보는 병렬 어셈블리 공유를 지원하지 않는 시스템에서 구성 요소의 자체 등록을 위해 SelfReg 테이블에 입력할 수 있습니다.
  7. 다른 레지스트리 정보(구성 요소의 바인딩 및 활성화 또는 자체 등록 전용)를 레지스트리 테이블, RemoveRegistry 테이블환경 테이블에 추가합니다.
  8. 설치 관리자는 병렬 공유를 지원하는 운영 체제에서 이 구성 요소에 대한 IsolatedComponent 테이블을 건너뜁니다. 로컬 파일을 지원하는 시스템에서 어셈블리가 프라이빗으로 설정하려면 이 테이블에 정보를 입력합니다.
  9. Win32 어셈블리가 포함된 구성 요소의 MsiAssembly 테이블에 행을 추가합니다. MsiAssembly 테이블의 특성 필드에 값 1을 입력하여 Win32 어셈블리임을 지정합니다. MsiAssembly 테이블의 File_Application 필드에 프라이빗 어셈블리의 파일 키를 입력합니다. InstallExecuteSequence 테이블 또는 AdvtExecuteSequence 테이블MsiPublishAssemblies 작업을 추가합니다. InstallExecuteSequence 테이블에 MsiUnpublishAssemblies 작업을 추가합니다. 어셈블리 및 매니페스트 파일의 폴더를 디렉터리 테이블에 작성합니다. 이 폴더는 애플리케이션의 루트 디렉터리에 있어야 하며 MsiAssembly 테이블의 File_Application 필드에 지정된 파일을 포함해야 합니다. 애플리케이션을 설치하는 동안 설치 관리자는 이 폴더의 경로에 대한 디렉터리 테이블을 확인합니다. 자세한 내용은 디렉터리 테이블 사용을 참조하세요.
  10. 구성 요소의 MsiAssemblyName 테이블에 행을 추가합니다. 매니페스트의 assemblyIdentity 섹션에 지정된 각 이름 및 값 쌍에 대해 하나의 행을 추가합니다. 자세한 내용은 MsiAssemblyName 테이블을 참조하세요.