2016-08-17 4 views
2

IIS가 설치되어있는 경우 선택적으로 가상 디렉터리를 설치하려고합니다. 설치되어 있지 않으면 건너 뛰십시오.선택적으로 WiX Toolset을 사용하여 IIS 가상 디렉터리를 설치할 수 있습니까?

내가이 체크있어

:

이 부분은 작동하는 것 같다
<Feature Id="ProductFeature2" Title="Setup" Level="1"> 
    <ComponentRef Id="AppIIS" /> 
    <Condition Level="0">NOT IIS_MAJOR_VERSION</Condition> 
</Feature> 

은, 그러나, iis:WebSite 노드는 다음과 같습니다

<Fragment> 
    <Property Id="IIS_MAJOR_VERSION"> 
    <RegistrySearch Id="CheckIISVersion" 
        Root="HKLM" 
        Key="SOFTWARE\Microsoft\InetStp" 
        Name="MajorVersion" 
        Type="raw" /> 
    </Property> 

    <iis:WebSite Id='DefaultWebSite' Description='Default Web Site' Directory='INSTALLFOLDER'> 
    <iis:WebAddress Id="AllUnassigned" Port="80" /> 
    </iis:WebSite> 

</Fragment> 

을하고 IIS_MAJOR_VERSION이 존재 기반으로, 나는 기능을 설치 문제를 일으킨다. 나는 IIS_MAJOR_VERSION가있는 경우에만 그것을 찾고 싶습니다.

iis:WebSite 노드를 구성 요소 그룹으로 이동하면 iis:WebSite이 '로케이터'모드가 아니며 설치되고 제거됩니다 (불량).

iis:WebSite에 대한 검사를 조건부로 실행할 수있는 방법이 있습니까?

답변

0

IIS 확장에서 요소 (예 : <iis:WebSite>)를 추가하면 ConfigureIIs이라는 특수한 사용자 지정 동작이 InstallExecuteSequence 테이블에 추가됩니다. 이 사용자 지정 동작은 WiX IIS 확장을 사용하여 IIS 관리와 관련된 모든 항목에 대한 소위 진입 점입니다.

ConfigureIIs 사용자 지정 작업은 필요에 따라 기본적으로 건너 뛰는 방법으로 조건이 지정됩니다. Orca로 결과 MSI 패키지를 열고 왼쪽 창에 InstallExecuteSequence 테이블로 이동하면 SKIPCONFIGUREIIS 속성을 사용하는 것으로 나타납니다. 따라서 IIS 관련 작업을 수행 할 필요가없는 경우에 대비하여 무언가 (예 : 1)로 설정하는 것이 좋습니다.

<SetProperty Id="SKIPCONFIGUREIIS" Value="1">NOT IIS_MAJOR_VERSION</SetProperty> 
:

그것은 SetProperty 요소를 수행 할 수 있습니다