Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Features abhängig von Eigenschaft erstellen


8 replies to this topic

Yasutani

Yasutani
  • Members
  • 44 posts

Posted 21 October 2004 - 10:16

Hallo,

ich hab ein Problem mit der Installation von Features - entweder das eine oder das andere soll installiert werden.

Dazu gibt es bereits einen Thread der das Problem behandelt und einen eigenen Dialog empfiehlt.

Die Lösung wäre jetzt folgende:

- Die Features ausblenden
- Für jedes Feature eine Eigenschaft im Eigenschaften-Manager erstellen
- In dem Feature eine Bedinung erstellen: Eigenschaft=1
- in dem eigenen Dialog entsprechend die Eigenschaften einstellen

Leider klappt Schritt 3 schon nicht - die Bedingung interessiert ihn nicht - es werden trotzdem beide installiert obwohl der Wert der Eigenschaft 0 ist.

Desweiteren müsste ich die Eigenschaften bei Anzeige des Dialogs zurücksetzen.

Könnt ihr mir weiterhelfen?


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 21 October 2004 - 10:22

Feature-Bedingungen werden während CostFinalize ausgewertet, also bevor deine Dialoge angezeit werden.
Stattdessen solltest du auf dem Next-Button des Dialogs die ControlEvents AddLocal und Remove verwenden.

Yasutani

Yasutani
  • Members
  • 44 posts

Posted 21 October 2004 - 11:30

Danke für die schnelle Antwort smile.gif

den Dialog hab ich noch gar nicht erstellt - den Wert der Eigenschaft erst mal in Eigenschaften-Manager auf 0 (False) gesetzt.

Das Problem ist wohl eher die Bedingung - ich schreib mal genau wie die aussehen:

Eigenschaft im Eigenschaftenmanager:
- Install_Office_Support_97 (Eingetragener Wert 0 = False)
- Install_Office_Support_2000 (Eingetragener Wert = 1 (True)

Es gibt 2 Features:
- f_office_97 (Bedingung: Install_Office_Support_97)
- f_office_2000 (Bedingung: Install_Office_Support_2000)

Beide Features sind nicht sichtbar aber aktiv.

Ausgehend von den Eigenschaften sollte doch f_office_2000 installiert werden, f_office_97 dagegen nicht.

Das Problem liegt wohl in der Bedingung der Features? Bis jetzt werden die einfach ignoriert.

Edited by Yasutani, 21 October 2004 - 11:32.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 21 October 2004 - 11:35

Feature-Bedingung heisst immer: wenn die bedingung erfüllt ist, dann wird der Feature-Level auf den angegebenen Wert gesetzt. Welchen Wert hast du also angegeben?
Übrigens ist 0 keinesweg FALSE sondern eben 0. FALSE ist ein Property-Wert, wenn das Property leer ist (undefiniert oder Leerstring)

ali

ali
  • Full Members
  • 1,008 posts

Posted 21 October 2004 - 12:31

Du solltest das mit den Feature bedingungen jeweils auf einem 9x und einem NT System testen. Das Verhalten ist unterschiedlich. Beachte auch das du einen Wert zur bedingung angibst also "BEDINGUNG="1"" ich würde auch öffendliche Properties verwenden, alos GROß gechrieben. Hat den Vorteil dass du Sie auch über einen Aufruf von msiexec.exe oder setup.exe /v setzen kannst.

Yasutani

Yasutani
  • Members
  • 44 posts

Posted 21 October 2004 - 16:50

Jetzt klappt alles - hab die Version mit Remove/AddLocal und einem eigenem Dialog benutzt.

W9x kann ich erst mal vernachlässigen - wir installieren nur auf NT-Systemen.

Das mit dem grossschreiben ist ein guter Tip smile.gif

Da stellt sich gleich die nächste Frage - Soweit ich das jetzt verstehe werden die Dialoge bei einem SilentSetup vollständig ignoriert.
Hab ich jetzt bei einem SilentSetup das gleiche Problem wieder das beide Features installiert werden?

Müsste ich jetzt nicht in der Ausführungssequenz die Property auch auswerten?

ali

ali
  • Full Members
  • 1,008 posts

Posted 22 October 2004 - 08:48

bei einem Silent Setup (Aufruf zb /qn od /qb) wird nur die Execute Sequenz des Setups durchlaufen. D.h. keine Dialoge und auch keinerlei Einstellungen aus der UI Sequenz. Ich übergebe die Werte als Übergabeparameter beim Start des Setups also
msiexec.exe /i %PFAD%meinsetup.msi INSTALLDIR="Pfad" BEDINGUNG=1 /L*V C:\TEST\silent.log /qb
Wenn du nur die Bedingung für die Feature verwendest geht das. Wenn du in dem Projekt noch zusätzliche auswertungen machen musst, von denen die Bedingung für das Feature abhängt, wirsr du das über CustomActions regeln müssen, die in der Execute Sequenz ausgeführt werden.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 22 October 2004 - 13:43

Im Silent-Fall könnestest du evtl. Conditions verwenden, denn wenn das Property auf der Kommandozeile gesetzt wird, steht es ja rechtzeitig zur Verfügung.
Du kannst aber auch einfach die eingebauten Properties ADDLOCAL und REMOVE verwenden, z.B.:
ADDLOCAL=Feature1,Feature2 REMOVE=Feature3

ali

ali
  • Full Members
  • 1,008 posts

Posted 22 October 2004 - 14:21

ich finde das es ziemlich aufwendig ist die Feature die man installieren will alle über Kommandozeile mitzugeben. Wir haben sehr viele Features. ICh verwende für bestimmte konfigurationen Properties und teile dem Kunden mit, "wenn du diesen Programmteil installieren willst dann setze das Property. Funktioniert eigentlich ganz gut.