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

Abbruchbedingung


4 replies to this topic

Michi

Michi
  • Members
  • 7 posts

Posted 16 March 2004 - 07:34

Hallo an alle,

ich hätte mal eine Grundsätzliche Frage.
Ich lese aus der Registry die Versionsnummer eines Fremdprogrammes aus.
Nun soll in Abhängigkeit dieser Versionsnummer, muss zwischen 5.1.3.2 und 5.2.1.0 liegen, mein Programm installieret werden.
Wenn die ermittelte Versionsnummer auserhalb dieses Bereiches liegt soll die Installation, mit entsprechender Meldung, abgebrochen werden.

Wenn ich im Menü "System durchsuchen" die entsprechenden Einstellugnen vornehme (Wert in der Eigenschaft speichern und Eigenschaft in einer Installationsbedingung).
Was muss ich dort eventuell eingeben, bzw. wie kann ich die Eigenschaft bei den conditions für ein Feature auswählen.
Ich denke für euch ist dann doch ein leichtes, aber für einen Anfänger wie mich leider nicht. unsure.gif

Gruß

Michi

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 16 March 2004 - 10:23

Leider hat MSI keine eingebaute Unterstützung für derartige Versionsvergleiche. MSI kann nur Strings vergleichen, aber das bedeutet, dass "10" < "9" (weil der Vergleich alphabetisch erfolgt und nicht numerisch). Am besten schreibst du eine kleine DLL oder ein VBScript, dass den Vergleich durchführt.
Bei der Suche nach einer Dateiversion (anstatt Registry-Eintrag) geht das besser, denn hier kann man direkt Versionsnummern eingeben.

Michi

Michi
  • Members
  • 7 posts

Posted 18 March 2004 - 13:39

Vielen Dank für deine Antort.

Jetzt weis ich auch wenistens warum meine Abrage nicht funktioniert hat. ohmy.gif
Dachte schon ich hab einen von vielen Anfängrfehlern gemacht.

Gruß

Michi

Michi

Michi
  • Members
  • 7 posts

Posted 22 March 2004 - 13:43

Ich schon wieder unsure.gif

Ich hab jetzt die Suche nach dem Registryeintrag ein wenig geändert und such nach einem anderen Wert.
Die Eigenschaft "BUILD_VERSION" wird auch sauber ausgelesen und ist nach AppSearch auch gesetzt (z.B. 130).
Was muß ich nun aber noch machen das es auch als Abbruchbedingung beachtet wird?
Hab die Suche auch so definiert das der Wert für eine Bedingung, mit eventueller Fehlermeldung, vorhanden ist.
Desweitern hab ich hab auch für ein Feature die Bedingung so gesetzt das die Eigenschaft BUILD_VERSION >= "139" sein muss.

So wie ich das in meiner SetupRoutine ersehen kann, wird die Bedingung für das Feature überhaupt nicht abgearbeitet. Kann es daran liegen das beim setzten der Bedingung für das Feature die Eigenschaft "BUILD_VERSION" nicht auswählbar ist?

Bin für jede Hilfe dankbar.

Und noch was.
Wie realisiere ich es, das am Ende der Installation eine Checkbox erscheint, in der die Option für den Start eines Programmes eingestellt werden kann?

Gruß

Michi

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 22 March 2004 - 22:46

Abbruchbedingungen und Feature Bedingungen sind zwei völlig verschiedene Dinge.

Schau mal unter den Allgemeinen Eigenschaften nach den Install Conditions, dort stehen die Abbruch-Bedingungen.

Bei den Feature-Bedingungen ist es so, dass Dem Feature der angegebene Level (erste Spalte) zugeteilt wird, wenn die Bedingung erfüllt ist. Ist der Level eines Features höher als der im Property INSTALLLEVEL angegebene Wert, dann ist es per Default nicht ausgewählt (kann aber ausgewählt werden).
Wenn ein Feature den Level 0 hat, dann wird es nicht installiert und auch nicht angezeigt.