Wix : "설치 후 응용 프로그램 시작"Checkbox = 0을 처리 할 수 ​​없습니다.

StackOverflow https://stackoverflow.com/questions/2272275

  •  20-09-2019
  •  | 
  •  

문제

"설치 후 애플리케이션 시작"확인란이있는 Wix와 함께 설치하고 있습니다. 목표는 확인란을 해결하고 체크 박스를 설정하지 않는 데 반응하는 것입니다. 확인란이 설정된 경우 응용 프로그램을 실행해야합니다. 확인란이 설정되지 않은 경우 동일한 응용 프로그램을 실행해야하지만 명령 줄 인수가 있습니다.

다음은 Wix 스크립트의 일부입니다.

<CustomAction Id="StartConfigManagerOnExit"
              FileKey="ParamsShower.exe"
              ExeCommand=""
              Execute="immediate"
              Impersonate="yes"
              Return="asyncNoWait" />
<CustomAction Id="StartUpgradeConfigOnExit"
              FileKey="ParamsShower.exe"
              ExeCommand="/upgrade"
              Execute="immediate"
              Impersonate="yes"
              Return="asyncNoWait" />
<UI>
    <Publish Dialog="ExitDialogEx"
             Control="Finish"
             Order="1"
             Event="DoAction"
             Value="StartConfigManagerOnExit">LAUNCHAPPONEXIT = 1</Publish>
    <Publish Dialog="ExitDialogEx"
             Control="Finish"
             Order="1"
             Event="DoAction"
             Value="StartUpgradeConfigOnExit">LAUNCHAPPONEXIT = 0</Publish>
    <Publish Dialog="ExitDialogEx"
             Control="Finish"
             Event="EndDialog"
             Value="Return"
             Order="999">1</Publish>

    <Dialog Id="ExitDialogEx"
            Width="370"
            Height="270"
            Title="[ProductName] Setup">
        <Control Id="LaunchCheckBox"
                 Type="CheckBox"
                 X="135"
                 Y="190"
                 Width="220"
                 Height="40"
                 Property="LAUNCHAPPONEXIT"
                 Hidden="yes"
                 CheckBoxValue="1"
                 Text="Launch an app">
           <Condition Action="show">NOT Installed</Condition>
        </Control>
    </Dialog>
    <InstallUISequence>
       <Show Dialog="ExitDialogEx"
             OnExit="success" />
    </InstallUISequence>
    <AdminUISequence>
        <Show Dialog="ExitDialogEx"
              OnExit="success" />
    </AdminUISequence>
</UI>

LaunchCheckBox가 설정되면 설치가 응용 프로그램을 시작합니다. 그러나 확인란이 설정되지 않은 경우 실행되지 않습니다.

도움이 되었습니까?

해결책

답을 찾았습니다. 체크 박스 속성이 확인되지 않은 경우 0과 같지 않은 것 같습니다. "launchApponexit = 0"으로 "launchAponExit = 0"조건을 변경하면 상황이 해결됩니다.

기본값 만들기 :

<Property Id="LAUNCHAPPONEXIT" Value="1" />

그런 다음 조건을 수정합니다 (Sascha의 의견으로 수정) :

<Publish Dialog="ExitDialogEx" Control="Finish" Order="1" Event="DoAction" Value="StartConfigManagerOnExit">LAUNCHAPPONEXIT</Publish>
<Publish Dialog="ExitDialogEx" Control="Finish" Order="1" Event="DoAction" Value="StartUpgradeConfigOnExit">NOT LAUNCHAPPONEXIT</Publish>

다른 팁

확인란은 선택 해제 될 때 전혀 가치가 없으므로 1/0 표기법을 사용하지 않고 간단히 사용할 수 있습니다.

LAUNCHAPPONEXIT

그리고

Not LAUNCHAPPONEXIT

자산에 대한 초기화 사용자 정의 조치를 추가해야합니다.

<CustomAction ID="InitLAUNCHAPPONEXIT" 
              Property="LAUNCHAPPONEXIT" 
              Value="0" 
              Return="check"/> 

나서 출구 표시 대화 상자를 표시하기 전에 installuisequence에 추가하거나 단순히 제품에 속성을 추가하십시오. <Property Id="LAUNCHAPPONEXIT" Value="0" />.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top