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

Dialoge und Conditions


8 replies to this topic

mka

mka
  • Full Members
  • 9 posts

Posted 05 May 2004 - 14:55

Hallo,

ich möchte bei meinem Basic MSI Project im englischen Developer 7 beim SetupCompleteSuccess-Dialog 2 von mir hinzugefügte Texte conditionell anzeigen lassen.

Und zwar habe ich eine neue Property CAFAILED erschaffen und setze nun bei "Behavior" die "Conditions" der beiden Texte auf "Show: CAFAILED=X".
Das "X" wird in einer CA gesetzt.

Testweise habe ich einfach mal "&MyFeature=3" als Condition eingetragen und die Texte wurden angezeigt.
Wenn ich nun von der CA die Property auf "false" oder "failed" setze (MsiSetProperty) und die Condition ebenso abfrage, dann passiert nichts.

Muss ich da vielleicht irgendwelche Condition-Regeln beachten oder ist das String-artigen Abfrage der Properties sowieso Mist?
Sollten Properties vielleicht am besten auf 1 oder 0 gesetzt werden und kann ich das mit MsiSetProperty überhaupt?

Danke für die Hilfe schonmal, das ständige Bauen (30 min), Kopieren und auf nem fremden Rechner testen nervt langsam... vielleicht hat da auch noch jemand einen Tipp für mich.

Gruß, Marius

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 05 May 2004 - 18:16

Versteh ich nicht ganz. Um den text anzuzeigen musst du doch das Property auf "X" setzen und nicht auf "false". In der Condition sollten Strings übrigens in Anführungseichen stehen:
CAFAILED="X"
denn bei
CAFAILED=X
wird das X als proepty-name interpretiert und nicht als String

mka

mka
  • Full Members
  • 9 posts

Posted 06 May 2004 - 07:03

Danke für die Antwort.

Das X sollte nur ein Beispiel für einen String sein...


Im Moment steht die Condition auf Show: CAFAILED="failed".
Die Property CAFAILED ist zu Beginn leer.
Die Texte sind zu Beginn auf not visible gestellt.
Falls die CA fehlschlägt, wird MsiSetProperty( hMSI, "CAFAILED", "failed") ausgeführt. Ich habe den Rückgabewert abgefragt, da kommt 0* zurück.
Trotzdem werden die Texte im Success-Dialog nicht angezeigt.

Ich hätte jetzt gedacht, dass ich vielleicht ein richtiges true und false bzw. 1 und 0 für die Property benutze, aber das String abfragen sollte ja auch klappen...

* In der Msi-Hilfe steht leider nix zu MsiSetProperty. Ist 0 vielleicht ein falscher Rückgabewert? IA. ist doch 0 = OK, !0 = Fehler, oder?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 06 May 2004 - 16:48

Möglicherweise liegt es daran, wann die Custom Action ausgeführt wird, und ob sie immediate oder deferred ist. Du kannst auch mal ein Log schreiben, um den tatsächlichen wert des properties zu sehen.

mka

mka
  • Full Members
  • 9 posts

Posted 10 May 2004 - 14:25

So, Problem eingekreist...

Offensichtlich kennt der SCS-Dialog am Ende meine Änderung an der Property nicht mehr - das Logfile nach dem Setup zeigt den Wert, den ich der Property von Anfang an mitgebe - und der komplett anders als die geänderten Werte ist.
Es kommt mir also so vor, als ob die Property table zum Zeitpunkt des SetupCompleteSuccess-Dialogs nur noch den Initialzustand kennt.

Irgendwie auch logisch, da ja die ISEngine vorher schon beendet wird. (Oder?)

-> Wie komm ich also an meine Änderungen ran? Bzw. wie macht Installshield das, die zeigen ja auch bestimmte Controls über Conditions an - z.B. die UpdateTexts.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 11 May 2004 - 12:22

Wann und wo setzt du das Property, d.h. wann ruft du die Custom Action auf, und welchen Ausführungstyp hat sie?

mka

mka
  • Full Members
  • 9 posts

Posted 11 May 2004 - 15:07

QUOTE
Wann und wo setzt du das Property

Beim Beginn (Startwert) und dann nur noch in meiner Custom Action.

QUOTE
, d.h. wann ruft du die Custom Action auf,

Vor Execute/ScheduleReboot

QUOTE
und welchen Ausführungstyp hat sie?

"Synchronous (Check exit code)"
bzw.
"Deferred Execution in System Context"

Liegt der Fehler wohlmöglich bei Letzterem?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 13 May 2004 - 15:00

Custom Actions mit Deferred Execution können keine Properties setzen.

mka

mka
  • Full Members
  • 9 posts

Posted 17 May 2004 - 14:57

Das wusste ich noch nicht, danke!
Wird geändert.