2010-08-09 2 views
2

저는 WiX를 사용하여 응용 프로그램 용 Windows 설치 데이터베이스를 작성하고 있습니다. 나는 내 앱과 함께 설치되는 XML 파일을 가지고 있는데, 설치 중에 얻은 정보로 채워 져야한다. WiXUtilExtension 태그 util:XmlFileutil:XmlConfig은 원칙적으로이를 수행하는 좋은 방법이지만 내 문제를 해결하지는 못합니다. 특히, 나는 몇 가지 자바 스크립트를 삽입해야합니다 설치하는 동안 WiX에 의해 수정 된 XML 파일에 대문자와 소문자를 어떻게 삽입 할 수 있습니까?

<?js 
    //some javascript that must include formatted string properties 
    //so that [PropertyName] evaluates to its value during installation 
?> 

하지만하여 폴더의 유틸리티의 값으로 텍스트와

: XMLFILE/@ 값 속성, 그것은 컴파일하지 않습니다 (놀랄 - 오류 CNDL0104을). 그리고 백 슬래시 나 [\] (대괄호의 이스케이프 시퀀스)는 ~보다 큰 문자 또는 작은 문자를 이스케이프 처리하지 않는 것 같습니다.

또한 삽입 된 텍스트를 util : XmlConfig 요소의 내부 텍스트에 배치하려고 시도했지만 Javascript 태그가있는 상태에서 텍스트를 무시합니다. CDATA 태그의 내부 텍스트를 래핑하면 텍스트가 삽입되지만 대문자와 소문자는 해당 엔터티 "& gt;"로 바뀝니다. 및 "& lt;"(따옴표와 공백 제외).

트릭이란 무엇입니까?

편집 : 여전히이 문제로 어려움을 겪고 있지만 더 자세한 내용은 더 명확히하는 데 도움이 될 수 있습니다. 다음은 설치시 수정해야하는 구조의 XML 파일 예제입니다. 내 윅스 코드에서

<?xml version="1.0"?> 
<RootElement> 
    <SubElement> 
     <?js 
      //insert Javascript here with formatted property values e.g. [PropertyName] 
     ?> 
    </SubElement> 
</RootElement> 

, 내가했다 :

물론, 오히려 내보다, 자바 스크립트 처리 명령 옆에있는 텍스트를 배치,
<util:XmlConfig Id="EditXml" File="foo.xml" Action="create" Node="value" On="install" ElementPath="//RootElement/SubElement" Sequence="1" > 
    <![CDATA[//the Javascript code]]> 
</util:XmlConfig> 

. 그래서 XPath으로 XML 처리 명령 태그에 액세스하여 아마도 util : XmlConfig/@ ElementPath 속성에 올바른 값을 사용하지 않는다고 생각했습니다. 이전에 XPath를 사용해 본 적이 없지만 다음 변경 중 하나가 효과가 있다고 생각했습니다.

아니요. 방금이 구문을 사용하지 않습니까? 아니면 다른 해결책이 있습니까?

미리 도움을 청하십시오!

답변

2

이 방법이 작동하는지 확인하는 도구가 없지만 엔티티 (&gt;&lt;)로 교체하려고하지만 CDATA 블록으로 감싸지 마십시오. 엔티티는 기본적으로 원시 XML의 "이스케이프 시퀀스"입니다.

+0

나는 그것을 시도했지만, XML은 내가 필요로하는보다 크고 작은 문자가 아닌 엔티티 만 유지했다. –

관련 문제