2015-01-20 5 views
0

나는 동안의 Web.config 편집을 구현하기 위해 노력하고있어 예상치 못한 자식 요소를 포함 내 here을 수행하지만,대로 설치 나는 구축 오류에 대항 간다 :CNDL0005는 : 윅스 요소는 '구성 요소'

CNDL0005: the wix element contains an unexpected child element 'component' 

이렇게하면 구성 요소를 제품 요소 안에 배치하면 안됩니다. 그러나 나는 그와 동일한 스키마를 사용하고있다. 내가 구성 요소를 조각 안에있는 디렉터리에 배치해야 msbuild에서이를 수용 할 수 있습니다. 누구나 이것이 왜 있는지 압니까?

위의 오류를 봤는데 그것은 no exact results을 반환합니다.

저는 윅스 3.9를 사용하고 있습니다.

답변

1

WiX는 기본 Windows Installer 데이터베이스의 XML/XSD 추상화입니다. 이 데이터베이스는 관계형이며 Feature, FetaureComponent, Component, Directory 및 File과 같은 테이블을 가지고 있습니다. 각 테이블에는 기본 키와 외래 키 열이 있습니다. > FeatureComponent < - -> 구성 요소

디렉토리 < -> 구성 요소 < - 기능 <

를 들어> 디렉토리가 두 개 이상의 요소를 가질 수 있지만, 구성 요소가 하나 개의 디렉토리 만에 속할 수

파일. 구성 요소와 파일에 대해서도 똑같이 말할 수 있습니다. 따라서 WiX에서 Directory 요소는 Component 요소의 부모 요소이고 Component 요소는 File 요소의 부모입니다. WiX는 빌드시 이들을 PK FK 관계로 변환합니다. MSBuild는 단지 WiX 컴파일러 도구 (촛불 ('CNDL0005'오류의 출처), 조명)를 호출하며 MSBuild는 이에 대해 전혀 알지 못합니다.

기능에는 하나 이상의 구성 요소가 포함될 수 있으며 구성 요소는 하나 이상의 기능에 속할 수 있습니다 (다수에서 많은 조인). 이 경우 WiX는 Feature < -> ComponentRef 관계를 생성했습니다.

당신이 인용 한 예제는 올바른 관계의 요소를 보여줍니다. 조립 만 제대로하고있는 것은 아닙니다. 시작 메뉴의 Wix.chm에는 각 요소에 대한 도움말 항목이 있으며 부모가 될 수있는 요소가 나열됩니다 (하위 요소 일 수 있으며 요소가 나타내는 관련 Windows Installer 데이터베이스 테이블에 대한 링크가 있음).

+0

그러므로 WiX에서 Directory 요소는 Component 요소의 부모 요소입니다. 내 게시물의 첫 번째 링크를 따라 가면 Component 요소의 예가 Product 요소의 자식으로 표시됩니다. 이 코드가 잘못 되었습니까? – roryok

+0

디렉토리 속성을 설정하면 Component가 Product의 하위 항목이 될 수 있습니다. 나는 결코 그렇게하지 않는다. –

+0

Directory 속성이 설정되어 있어도 (인용 된 원래 예제에서와 같이) 동일한 오류가 발생합니다. – roryok