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.
Gruß
Michi
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.
Abbruchbedingung
Started by
Michi
, Mar 16 2004 07:34
4 replies to this topic
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.
Bei der Suche nach einer Dateiversion (anstatt Registry-Eintrag) geht das besser, denn hier kann man direkt Versionsnummern eingeben.
Stefan Krüger
InstallSite.org twitter facebook
Posted 18 March 2004 - 13:39
Vielen Dank für deine Antort.
Jetzt weis ich auch wenistens warum meine Abrage nicht funktioniert hat.
Dachte schon ich hab einen von vielen Anfängrfehlern gemacht.
Gruß
Michi
Jetzt weis ich auch wenistens warum meine Abrage nicht funktioniert hat.
Dachte schon ich hab einen von vielen Anfängrfehlern gemacht.
Gruß
Michi
Posted 22 March 2004 - 13:43
Ich schon wieder
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
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
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.
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.
Stefan Krüger
InstallSite.org twitter facebook