2

「インストール後にアプリケーションを起動する」チェックボックスが付いた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が設定されている場合、インストールによってアプリケーションが開始されます。ただし、チェックボックスが設定されていない場合は実行されません。

4

3 に答える 3

5

答えを見つけました。チェックを外すと、チェックボックスのプロパティが0に等しくないように見えます。条件「LAUNCHAPPONEXIT=0」を「NOTLAUNCHAPPONEXIT」に変更するだけで、状況が解決します。

デフォルトにする:

<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>
于 2010-02-16T14:00:43.437 に答える
3

チェックボックスをオフにすると、値がまったく表示されないため、1/0表記を使用するのではなく、単純に使用できます。

LAUNCHAPPONEXIT

Not LAUNCHAPPONEXIT
于 2010-02-17T05:00:27.867 に答える
0

プロパティの初期化カスタムアクションを追加する必要があります。

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

次に、それをInstallUISequenceに追加してから終了ダイアログを表示するか、プロパティを製品に追加します<Property Id="LAUNCHAPPONEXIT" Value="0" />

于 2010-02-16T11:31:44.640 に答える