2010-01-18 4 views
1

나는 3 개의 프로젝트가있는 WiX 설치 관리자가 있습니다. 2 병합 모듈 작성, 1 설치 프로그램을 작성합니다. 해당 기능이 선택된 경우에만 mergemodule의 코드를 실행해야합니다. 이 기능을 사용자 지정 작업과 함께 사용할 수 있습니까?WiX : 기능을 선택한 경우에만 병합 모듈에서 사용자 지정 작업 호출

내 경험에서

사용자 정의 액션은 항상 호출 - 특정 기능을 선택 어떠했는지 여부 ... Podoct에서

코드 :

<Feature Id="Complete" Title="SDK Setup" Description="Installs the sdk" Display="expand" Level="1" ConfigurableDirectory="INSTALLLOCATION"> 
    <Feature Id="SDK" Title ="SDK" Description="" Level ="1"> 

....

병합 모듈에서 사용자 지정 작업을 호출하십시오 (예 :

).
<CustomAction Id='CustomAction' BinaryKey='CaDll' DllEntry='CaEntry' Execute='deferred' /> 
<CustomAction Id="CustomAction.SetProperty" Return="check" Property="CustomAction" Value='test' Execute='immediate' /> 

<InstallExecuteSequence> 
    <Custom Action='CustomAction.SetProperty' After='CostFinalize'>(NOT Installed) AND (NOT UPGRADINGPRODUCTCODE) </Custom> 
    <Custom Action='CustomAction' After='InstallFiles'>(NOT Installed) AND (NOT UPGRADINGPRODUCTCODE) </Custom> 

답변

2

일반적으로 사용자 지정 작업은 구성 요소 나 기능과 관련이 없습니다. 한 가지 관점에서 볼 때 데이터 기반 방식으로 작성해야하기 때문입니다. 코드의 모든 구성 요소의 설치 및 작업 상태를 검사하여 수행 할 작업 목록을 작성하십시오.

하지만 작업이 사용자 정의 데이터베이스 테이블의 도움을 받아서도 이해할 수없는 경우 해당 작업을 조건에 따라 기능 또는 구성 요소의 작업 상태에 항상 연결할 수 있습니다. "액세스 접두어"또는 "기능 및 구성 요소 상태 값"에 대해서는 Conditional Statement Syntax을 참조하십시오. 특히 하단에있는 예제는 &MyFeature=3입니다. MyFeature를 설치하면 true입니다.

관련 문제