저는 WiX를 사용하여 응용 프로그램 용 Windows 설치 데이터베이스를 작성하고 있습니다. 나는 내 앱과 함께 설치되는 XML 파일을 가지고 있는데, 설치 중에 얻은 정보로 채워 져야한다. WiXUtilExtension 태그 util:XmlFile 및 util: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를 사용해 본 적이 없지만 다음 변경 중 하나가 효과가 있다고 생각했습니다.
아니요. 방금이 구문을 사용하지 않습니까? 아니면 다른 해결책이 있습니까?
미리 도움을 청하십시오!
나는 그것을 시도했지만, XML은 내가 필요로하는보다 크고 작은 문자가 아닌 엔티티 만 유지했다. –