ICE69
ICE69는 형식이 지정된 문자열 내의 양식 [$componentkey]의 모든 부분 문자열이 구성 요소를 상호 참조하지 않는지 확인합니다. 구성 요소 간 참조는 서식이 지정된 문자열의 [$componentkey] 속성이 테이블의 Component_ 열에 저장된 구성 요소 이외의 구성 요소를 참조할 때 발생합니다.
구성 요소 간 참조 문제는 형식이 지정된 문자열을 방식에서 발생합니다. [$componentkey] 속성으로 참조된 구성 요소가 이미 설치되어 있고 현재 설치 중에 변경되지 않는 경우(예: 다시 설치, 원본으로 이동 등) 식 [$componentkey]은 [$componentkey]에 있는 구성 요소의 작업 상태가 null이므로 null로 평가됩니다. 업그레이드 및 복구 작업 중에도 비슷한 문제가 발생할 수 있습니다.
결과
ICE69는 형식의 문자열 내의 [$componentkey] 부분 문자열이 다른 기능의 구성 요소를 상호 참조하는 경우 오류를 반환합니다. ICE69는 형식이 지정된 문자열 내의 [$componentkey] 부분 문자열이 동일한 기능의 구성 요소를 상호 참조하는 경우 경고를 반환합니다. (FeatureComponents 테이블을 사용하여 이 매핑을 확인합니다. 경고에 대해 동일한 기능에 매핑해야 합니다. 부모 기능에서 구성 요소를 참조하거나 자식 기능의 구성 요소를 참조하는 것은 오류로 간주됩니다.)
ICE69는 형식의 문자열 내의 [#FileKey] 부분 문자열이 File 테이블에 동일한 구성 요소에 속하는 것으로 지정되지 않은 파일을 참조하는 경우 오류를 보고합니다.
본보기
ICE69는 표시된 예제에 대해 다음을 보고합니다.
WARNING: "Mismatched component reference. Entry 'Test' of the Shortcut table belongs to component 'QuickTest'. However, the formatted string in column 'Argument' references component 'Test'. Components are in the same feature."
ERROR: "Mismatched component reference. Entry 'Shortcut2' of the Shortcut table belongs to component 'QuickTest'. However, the formatted string in column 'Argument' references component 'Test2'. Components are not in the same feature."
이 오류를 해결하려면 구성 요소를 상호 참조하지 마세요. 바로 가기의 구성 요소와 일치하도록 [$componentkey]을 변경합니다.
바로 가기 테이블(부분)
지름길 | 구성 요소_ | 논쟁 |
---|---|---|
테스트 | QuickTest | -v [$Test] |
Shortcut2 | QuickTest | [$Test 2] |
동사 및 확장 테이블은 동사 테이블이 구성 요소에 속한 확장을 참조하는 특별한 경우입니다. 그러나 확장 테이블의 기본 키는 확장 및 Component_ 열로 구성되므로 확장은 여러 구성 요소에 속할 수 있습니다. 논리적으로 다음과 같은 상황이 발생할 수 있습니다.
동사 테이블(부분)
확장 | 동사_ | 논쟁 |
---|---|---|
tst | 열다 | -v [$comp 1][$comp 2] |
확장 테이블(부분)
확장 | 구성 요소_ |
---|---|
tst | comp1 |
tst | comp2 |
특징_ | 구성 요소_ |
---|---|
Feature1 | QuickTest |
Feature1 | 테스트 |
기능 2 | Test2 |
이 경우 [$componentkey] 속성 중 하나 이상이 null이 아닌 값으로 평가되는지 확인해야 합니다. 그러나 동사 테이블의 인수 열에 있는 모든 [$componentkey] 속성(위의 예제에서는 [$comp 1] 및 [$comp 2])은 동사와 연결된 확장에 포함된 가능한 구성 요소를 참조해야 합니다. [$comp 3]와 같은 참조로 인해 ICE69에서 경고가 발생합니다.
AppId 테이블 동사 테이블과 비슷한 상황이 있습니다. 구성 요소 참조에 클래스 테이블 사용합니다. 이 경우 AppId 테이블은 Verb-Extension 유효성 검사(현재 AppId-Class)와 동일한 방식으로 유효성을 검사합니다.
클래스 테이블의 인수 열은 바로 가기, 레지스트리및 유사한 테이블과 같이 유효성이 검사됩니다.
실행 중에 사용되는 테이블(발견된 경우에만)
관련 항목