다음을 통해 공유


ICE38

ICE38은 현재 사용자 프로필 아래에 설치되는 모든 구성 요소가 구성 요소 테이블KeyPath 열의 HKEY_CURRENT_USER 루트 아래에 레지스트리 키를 지정하는지 확인합니다.

결과

사용자 프로필 아래에 설치된 구성 요소가 HKCU 레지스트리 키를 지정하지 않으면 ICE38에서 오류를 게시합니다.

본보기

ICE38은 표시된 샘플에 대해 다음과 같은 오류를 보고합니다.

ICE38 오류 묘사
구성 요소 1이 사용자 프로필에 설치됩니다. HKCU의 레지스트리 키를 파일이 아닌 KeyPath로 사용해야 합니다. Component1의 특성 열 값은 0입니다. 즉, 구성 요소가 해당 KeyPath로 파일을 사용해야 합니다. 이렇게 하면 여러 사용자가 동일한 컴퓨터에 구성 요소를 설치할 때 어려움이 발생합니다. Component1에서 이 오류를 해결하려면 구성 요소 테이블 특성 열에서 RegistryKeyPath 비트를 설정하고 KeyPath 열의 항목을 레지스트리 테이블의 레지스트리 열에 나열된 값으로 변경합니다.
구성 요소 구성 요소2가 사용자 프로필에 설치됩니다. HKCU에서 레지스트리 키를 KeyPath로 사용해야 합니다. KeyPath는 현재 NULL입니다. Component2에는 구성 요소 테이블특성 열에 RegistryKeyPath 비트가 설정되어 있습니다. 따라서 KeyPath 필드에는 레지스트리 테이블 레지스트리 열에 대한 키가 포함되어야 하지만 KeyPath 열은 Null입니다. 이 오류를 해결하려면 KeyPath 값을 레지스트리 테이블의 유효한 항목으로 변경합니다.
구성 요소3이 사용자 프로필에 설치됩니다. KeyPath 레지스트리 키는 HKCU에 속해야 합니다. Component3에는 구성 요소 테이블의 특성 열에 RegistryKeyPath 비트가 설정되어 있지만 레지스트리 테이블의 루트 열에 지정된 레지스트리 항목의 루트는 HKEY_CURRENT_USER대신 HKEY_LOCAL_MACHINE 지정합니다. 이 오류를 해결하려면 HKEY_LOCAL_MACHINE 아래에 있는 유효한 레지스트리 항목을 이 구성 요소의 KeyPath로 사용하거나 레지스트리 테이블의 루트 열에서 값을 -1 또는 1로 변경합니다.
Component4 구성 요소에 대한 KeyPath 레지스트리 항목이 없습니다. Component4에는 구성 요소 테이블 특성 열에 RegistryKeyPath 비트가 설정되어 있지만 KeyPath 열의 항목은 레지스트리 테이블없습니다. 이 오류를 해결하려면 Reg4에 대한 항목을 HKEY_CURRENT_USER아래에 있는 레지스트리 테이블에 추가합니다.
레지스트리 항목 Reg5는 Component5에 대한 KeyPath로 설정되지만 해당 레지스트리 항목은 Component5에 속하지 않습니다. 구성 요소의 KeyPath 열에서 참조된 레지스트리 항목이 발견되어 HKCU 트리 아래에 있지만 레지스트리 항목의 Component_ 열은 KeyPath로 나열된 동일한 구성 요소를 다시 참조하지 않습니다. 즉, 구성 요소의 KeyPath로 사용되는 레지스트리 항목은 다른 구성 요소가 설치된 경우에만 생성됩니다. 이 오류를 해결하려면 구성 요소에 속하는 레지스트리 항목을 참조하도록 KeyPath 값을 변경하거나 KeyPath로 사용하여 구성 요소에 속하도록 레지스트리 항목을 변경합니다.

 

디렉터리 테이블(부분)

디렉토리 Directory_Parent DefaultDir
Dir1 StartMenuFolder
Dir2 DesktopFolder
Dir3 Dir3 AppData
Dir4 Dir3 SubDir

 

구성 요소 테이블(부분)

구성 요소 디렉토리_ 특성 KeyPath
Component1 Dir1 0 File1
Component2 Dir2 4
Component3 Dir3 4 Reg3
Component4 Dir4 4 Reg4
구성 요소5 Dir5 4 Reg5

 

레지스트리 테이블(부분)

레지스트리 뿌리 구성 요소_
Reg3 2 Component3
Reg5 0 Component4

 

ICE 참조