2011-04-18 2 views
2

사용자 지정 작업에 속성을 구문 분석하지 않고 속성을 전달하는 주요 방법은 무엇입니까? 나는 "X1 = X1value X2 = X2value"라고 쓰면 사용자 정의 액션 X1은 "X1value X2 = X2value"와 같을 것이고 X2는 별도의 속성으로 존재하지 않을 것입니다. 속성 문자열 형식은 무엇입니까?사용자 지정 작업에 몇 가지 속성 전달

+0

CustomAction의 언어는 무엇입니까? VBScript, JScript, InstallScript, C/C++ (WiX wcautil.lib/dutil.lib? 사용), C# (설치자 클래스 또는 DTF)? –

+0

내 CustomAction은 WiX 사용자 지정 작업 템플릿을 사용하며 C# –

답변

4

CustomActionData를 serialize하고 serialize하는 데 "표준"이 있는지 알지 못합니다. 거기에 몇 가지 라이브러리가 있습니다. C# DTF 사용자 지정 작업을 사용하는 경우에는 속성 컬렉션을 serialize 및 deserialize 할 수있는 CustomActionData 클래스가 있습니다. PROPERTYB = VALUE (단위 : 십억)

심지어 XML 조각 같은;

/PROPERTYA = VALUEA/PROPERTYB = VALUE (단위 : 십억)

또는

PROPERTYA = VALUEA : 그렇지 않으면 당신은 거의 같은 자신의 패턴을 가지고 올

<Properties> 
<Property Id="PROPERTYA">VALUEA</Property> 
<Property Id="PROPERTYB">VALUEB</Property> 
</Properties> 

요점은 지연된 CA에서 사용할 수 있도록 직렬화 및 비 직렬화입니다.

+0

으로 작성되었습니다. 예, DTF CustomActionData 클래스를 사용합니다. 어떤 형식으로 문자열을 CustomActionData에 써야 값을 deserialize 할 수 있습니까? –

+0

내가 사용할 수있는 것으로 나타났습니다. 속성 구분자로 사용하고 WiX는이를 deserialize합니다. –

+0

유형 51 특성 세트 사용자 정의 조치가 작동하지만, 요구 사항이 더 복잡해지면 (사용자 정의 테이블을 조회하고, 구성 요소 조치 상태를 평가 한 후 명령 세트를 생성하는 경우) 다른 DTF 사용자 정의 조치를 사용하여 CustomActionData 클래스를 생성 한 다음 문자열로 직렬화합니다. –

관련 문제