2016-04-14 4 views
1

Ich versuche, das nächste Szenario zu implementieren: 'Willkommen Dialog' -> 'Service-Name Dialog' -> 'Installationspfad Dialog'WIX Installateur - pass Variable zum nächsten Fenster

Servicename Dialog ist ein Gewohnheit eins. Der Benutzer soll den Namen des Dienstes eingeben und nach dem Drücken der Schaltfläche "Weiter" - im Dialog "Installationspfad" erscheint der Standardpfad wie "..... \ inserted_value_on_previous_window".

At 'Service-Name Dialog' habe ich Edit Control wie implementiert:

<Control Id="ServiceValueEdit" Type="Edit" X="15" Y="60" Width="200" Height="15" Property="WIXUI_SELECTEDSERVICENAME" Indirect="yes" /> 

So ist es einrichten WIXUI_SELECTEDSERVICENAME Eigenschaft soll. Für Standardinstallationspfad im ‚Installationspfad Dialog‘ Einstellung verwende ich Code wie:

<Property Id="WIXUI_SELECTEDSERVICENAME" Value="SELECTEDSERVICENAME"></Property> 

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"></Property> 

<SetDirectory Id="INSTALLDIR" Value="[DEFIISFOLDER]\[WIXUI_SELECTEDSERVICENAME]" Sequence="both"></SetDirectory> 

Aber leider, wenn wir einen beliebigen Wert zu ‚Servic Name Dialog‘ und setzen Sie gehen - es ist nicht auf der nächsten reflektiert Bekommt Bildschirm. Das nächste Fenster wird immer den Standardwert SELECTEDSERVICENAME haben. Was ich denke, es wird nur eins zur Kompilierzeit gesetzt und wird während der Laufzeit nicht aktualisiert.

Kann jemand helfen herauszufinden, wie es möglich ist, diesen Wert von einem Fenster aus zu setzen und zum nächsten zu übertragen? Danke.

hier klar sein, sind die paar Screenshots: Service name dialog

Also, was ich tun möchte, ist der Dialog unter dieser Zeichenfolge enthalten ‚name‘ zu machen, statt ‚SELECTEDSERVICENAME (wie auf dem Bild abowe gezeigt) 'wie unten aufgeführt.

enter image description here

+0

Verwenden Sie Value = "[DEFIISFOLDER] \ [SELECTEDSERVICENAME]" anstelle dessen, was Sie verwenden.WIXUI_SELECTEDSERVICENAME ist eine indirekte Eigenschaft. –

+0

Vielen Dank, dass Sie sich über indirektes Eigentum Notizen gemacht haben! – Oleksii

Antwort

1

Sie setzen den Wert von INSTALLDIR auf [DEFIISFOLDER] [WIXUI_SELECTEDSERVICENAME] bei der Ersteinrichtung der Installation. Das bedeutet, dass Sie den Anfangswert von WIXUI_SELECTEDSERVICENAME beim Festlegen der Eigenschaft INSTALLDIR verwenden.

Sie müssen ein Ereignis veröffentlichen, wenn Sie die UI-Seiten wechseln, die das Installationsverzeichnis aktualisieren.

Ich denke, etwas Ähnliches wie:

<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" /> 
    <Publish Property="INSTALLDIR" Value="[DEFIISFOLDER]\[WIXUI_SELECTEDSERVICENAME]">1</Publish> 
</Control> 

die Eigenschaft INSTALLDIR mit dem neuen WIXUI_SELECTEDSERVICENAME Wert aktualisieren würde.

+1

Vielen Dank Brian für Ihren Tipp! Die Lösung ist genau wie du sagst :) – Oleksii