2011-04-20 4 views

답변

15

Property 요소로 설정된 속성과 같은 WiX 속성에 액세스하려면 세션 개체의 인덱서를 사용하십시오. 다음은 예입니다.

[CustomAction] 
public static ActionResult CustomAction1(Session session) 
{ 
string myProperty = session["MY_PROPERTY"]; 
return ActionResult.Success; 
} 

속성을 설정하는 것만 큼 쉽습니다. 속성 이름이 인 키를 참조하여 값을 설정합니다. 예를 들면 다음과 같습니다.

[CustomAction] 
public static ActionResult CustomAction1(Session session) 
{ 
session["MY_PROPERTY"] = "abc"; 
return ActionResult.Success; 
} 

설정하면 속성이 생성되지 않습니다. 마찬가지로 값을 null로 설정하여 속성을 지울 수 있습니다. 사용자 지정 작업에서 속성 값 을 만들거나 변경해도 설치 관리자가 설치 로그에 의 속성을 표시하는 것을 멈추지 않습니다. 따라서 속성에 숨겨져 있어야하는 정보가있는 경우 은 WiX 마크 업에서 먼저 선언하고 숨겨진 속성 을 예로 설정하는 것이 좋습니다.

<Property Id="MY_PROPERTY" Hidden="yes" /> 
0

수 없습니다. Win32 DLL과 VBScript 만 즉시 실행 작업에는 설치 관리자 속성에 대한 쓰기 권한이 있습니다. 다른 사용자 지정 작업 유형은 명령 줄이나 CustomActionData를 통해서만 속성을받을 수 있습니다. 당신이 MsiGetProperty()MsiSetProperty() 사용할 수 있습니다 http://www.codeproject.com/KB/install/msicustomaction.aspx

얻을 및 설정의 Windows Installer 속성 : 여기

는 C++ DLL 사용자 지정 작업에 대한 튜토리얼입니다.

+0

관리되는 CA를 작성하기 위해 DFT를 사용한다면 어떻게 될까요? –

+1

예, 대답은 의도적이지만 부분적으로 만 정확합니다. Installer 클래스의 마샬링이나 원격 처리가 없으므로 Visual Studio의 Installer 클래스는 속성에 액세스 할 수 없습니다. 그러나 더 나은 관리 된 사용자 지정 작업 솔루션은 Session [ "property"]와 같은 추상화를 통해 또는 설치 관리자 핸들의 직접 P/Invoke를 통해 액세스를 제공합니다. –

관련 문제