다음을 통해 공유


레지스트리 테이블

레지스트리 테이블에는 애플리케이션이 시스템 레지스트리에 설정해야 하는 레지스트리 정보가 있습니다.

레지스트리 테이블에는 다음 열이 있습니다.

열쇠 Nullable
레지스트리 식별자 Y N
뿌리 정수 N N
열쇠 RegPath N N
이름 서식이 지정된 N Y
서식이 지정된 N Y
구성 요소_ 식별자 N N

 

레지스트리

레지스트리 레코드를 식별하는 데 사용되는 기본 키입니다.

루트

레지스트리 값에 대해 미리 정의된 루트 키입니다. 이 필드에 -1 값을 입력하여 루트 키가 설치 유형에 종속되도록 합니다. 레지스트리 값을 특정 루트 키 아래에 쓰도록 하려면 다음 표의 다른 값 중 하나를 입력합니다.

상수 16 진수 십진법 루트 키
(없음) - 0x001 -1 사용자별 설치인 경우 레지스트리 값은 HKEY_CURRENT_USER아래에 기록됩니다. 컴퓨터별 설치인 경우 레지스트리 값은 HKEY_LOCAL_MACHINE아래에 기록됩니다. 컴퓨터별 설치는 ALLUSERS 속성을 1로 설정하여 지정됩니다.
msidbRegistryRootClassesRoot 0x000 0 HKEY_CLASSES_ROOT설치 관리자는 사용자별 설치 컨텍스트설치하는 동안 HKCU\Software\Classes hive에서 값을 쓰거나 제거합니다.
설치 관리자는 컴퓨터별로 설치하는 동안 HKLM\Software\Classes hive에서 값을 작성하거나 제거합니다.
msidbRegistryRootCurrentUser 0x001 1 HKEY_CURRENT_USER
msidbRegistryRootLocalMachine 0x002 2 HKEY_LOCAL_MACHINE
msidbRegistryRootUsers 0x003 3 HKEY_USERS

 

HKCU hive에 기록된 레지스트리 항목은 구성 요소 테이블특성 열에 RegistryKeyPath 비트가 설정된 구성 요소를 참조하는 것이 좋습니다. 이렇게 하면 동일한 컴퓨터에 여러 사용자가 있는 경우 설치 관리자가 필요한 레지스트리 항목을 작성합니다.

레지스트리 값에 대한 지역화 가능 키입니다.

이름

이 열에는 레지스트리 값 이름(지역화 가능)이 포함됩니다. Null이면 값 열에 입력된 데이터가 기본 레지스트리 키에 기록됩니다.

값 열이 Null이면 Name 열의 다음 표에 표시된 문자열에 특별한 의미가 있습니다.

문자열 의미
+ 구성 요소가 설치될 때 키가 없는 경우 만들어야 합니다.
- 키는 구성 요소가 제거될 때 모든 값 및 하위 키와 함께 있는 경우 삭제됩니다.
* 구성 요소가 설치될 때 키가 없는 경우 만들어야 합니다. 또한 구성 요소를 제거할 때 키는 모든 값과 하위 키와 함께 있는 경우 삭제됩니다.

 

RemoveRegistry 테이블 구성 요소가 설치될 때 해당 값 및 하위 키와 함께 설치된 레지스트리 키를 삭제하는 경우 사용해야 합니다.

이 열은 지역화 가능한 레지스트리 값입니다. 필드가 서식이 지정된 . 값이 다음 접두사 중 하나에 연결된 경우(예: #%) 테이블에 설명된 대로 값이 해석됩니다. 각 접두사는 숫자 기호(#)로 시작합니다. 값이 두 개 이상의 연속 숫자 기호(#)로 시작하는 경우 첫 번째 #은 무시되고 값이 해석되고 문자열로 저장됩니다.

접두사 의미
#x 이 값은 해석되고 16진수 값(REG_BINARY)으로 저장됩니다.
#% 값이 해석되고 확장 가능한 문자열(REG_EXPAND_SZ)으로 저장됩니다.
# 값이 해석되고 정수(REG_DWORD)로 저장됩니다.

 

  • 값에 시퀀스 타일드 [~]가 포함된 경우 값은 Null로 구분된 문자열 목록(REG_MULTI_SZ)으로 해석됩니다. 예를 들어 a, b 및 c의 세 문자열이 포함된 목록을 지정하려면 "a[~]b[~]c"를 사용합니다.
  • 값 내의 시퀀스 [~]는 개별 문자열을 구분하고 해석되고 Null 문자로 저장됩니다.
  • 문자열 목록 앞에 [~]가 있으면 기존 레지스트리 값 문자열에 문자열을 추가해야 합니다. 레지스트리 값에 추가 문자열이 이미 있는 경우 원래 문자열이 제거됩니다.
  • [~]이 문자열 목록의 끝을 따르는 경우 기존 레지스트리 값 문자열 앞에 문자열을 추가해야 합니다. 레지스트리 값에 앞에 추가 문자열이 이미 있는 경우 원래 문자열이 제거됩니다.
  • [~]가 시작과 끝 둘 다에 있거나 문자열 목록의 시작이나 끝에 있지 않은 경우 문자열은 기존 레지스트리 값 문자열을 대체해야 합니다.
  • 그렇지 않으면 값이 해석되고 문자열(REG_SZ)로 저장됩니다.

Component_

구성 요소 테이블의 첫 번째 열에 있는 외부 키는 레지스트리 값의 설치를 제어하는 구성 요소를 참조하는.

발언

시퀀스 테이블의 WriteRegistryValuesRemoveRegistryValues 작업은 이 테이블의 정보를 처리할 있습니다. 시퀀스 테이블사용에 대한 자세한 내용은 시퀀스 테이블사용합니다.

레지스트리 정보는 해당 구성 요소가 로컬로 설치되거나 원본에서 실행되도록 선택된 경우 시스템 레지스트리에 기록됩니다.

설치 관리자는 키 아래에 있는 마지막 값 또는 하위 키를 제거한 후 레지스트리 키를 제거합니다. 제거할 때 빈 레지스트리 키가 제거되지 않도록 하려면 유지해야 하는 키 아래에 더미 값을 작성하고 이름 열에 +를 입력합니다. *가 이름 열에 있는 경우 구성 요소가 제거되면 모든 값과 하위 키를 사용하여 키가 삭제됩니다.

사용자 지정 작업을 사용하여 설치, 제거 또는 트랜잭션 복구 중에 레지스트리 테이블에 행을 추가할 수 있습니다. 이러한 행은 레지스트리 테이블에 유지되지 않으며 정보는 현재 트랜잭션 중에만 사용할 수 있습니다. 따라서 사용자 지정 작업은 이러한 추가 행의 정보가 필요한 모든 설치, 제거 또는 복구 트랜잭션에서 실행되어야 합니다. 사용자 지정 작업은 RemoveRegistryValues 앞에 와서 작업 순서에서 WriteRegistryValues 작업을 합니다.

레지스트리 키를 보호하는 방법에 대한 자세한 내용은 MsiLockPermissionsEx TableLockPermissions 테이블참조하세요.

유효성 검사

ICE02
ice03
ICE06
ICE32
ICE38
ICE43
ICE46
ICE49
ICE53
ICE55
ice57
ICE70
ICE80