WiX: Kann Griff nicht „Starten einer Anwendung nach der Installation aktivieren“ = 0

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

  •  20-09-2019
  •  | 
  •  

Frage

Ich bin eine Installation mit WiX machen, die eine haben „Starten einer Anwendung nach der Installation aktivieren“. Das Ziel ist es, eine Reaktion zu haben, auf das Kontrollkästchen sowie auf Lösens des Kästchens settting. Falls das Kontrollkästchen gesetzt ist, muss ich eine Anwendung auszuführen. Wenn das Feld nicht gesetzt ist, muß ich die gleiche Anwendung laufen, aber mit Befehlszeilenargument.

Hier ist ein Teil meines WiX-Skript.

<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>

Eine Installation startet die Anwendung, wenn LaunchCheckBox eingestellt ist. Aber es nicht, es im Fall läuft das Kontrollkästchen nicht gesetzt.

War es hilfreich?

Lösung

Ich habe eine Antwort gefunden. Sieht aus wie Checkbox Eigenschaft ist nicht gleich 0 ist, wenn nicht markiert. Einfach den Zustand mit "NOT LAUNCHAPPONEXIT" löst sich die Situation ändern "LAUNCHAPPONEXIT = 0".

Als Standard festlegen:

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

korrigieren dann die Bedingungen (korrigiert mit sascha Kommentar):

<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>

Andere Tipps

Eine Checkbox keinen Wert überhaupt hat, wenn nicht markiert, also eher als die Verwendung der 1/0 Notation Sie einfach verwenden können,

LAUNCHAPPONEXIT

und

Not LAUNCHAPPONEXIT

Sie müssen für Ihre Immobilie initialize benutzerdefinierte Aktion hinzuzufügen,

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

und dann fügen Sie es InstallUISequence vor Show Exit Dialog, oder fügen Sie einfach Ihre Immobilie Produkt <Property Id="LAUNCHAPPONEXIT" Value="0" />.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top