Ich habe in meinen Basic MSI Setups einige Components, die nur aus vielen Textfiles bestehen, die natürlich keine Versionsnummer in sich tragen (dynamically linked in IS 11, keine subdirectories).
Frage: Wie geht der Installer vor beim Upgrade dieser Components?
Welche Rolle spielt dabei der KeyPath? Sollte er auf eines der Files zeigen, oder auf das Directory, oder sollte gar keiner gesetzt sein?
Ich habe die Erfahrung gemacht, dass diese Files updated werden, auch wenn sich das KeyFile nicht geändert hat.
Die Doku habe ich aber so verstanden, dass in diesem Fall die ganze Component als aktuell betrachtet wird und kein Update erfolgt.
Mich interessiert nur das Update, auf Self-Healing könnte ich verzichten.
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.
Minor Upgrade
Started by
JuergenS
, Nov 17 2005 11:16
3 replies to this topic
Posted 17 November 2005 - 23:06
Eine versionslose Datei die sich nicht geändert hat wird überschrieben (und deshalb werden auch die anderen Dateien in der Komponente ggf. aktualisiert). Allerdings sollte das nicht passieren, wenn du für die Datei Hash-Einträge hast (was InstallShield eigentlich automatisch machte, dachte ich). Schreib am besten mal ein ausführliches Log. Dort erzählt der Installer warum er meint, bestimmte Dateien überschreiben zu müssen oder nicht.
Stefan Krüger
InstallSite.org twitter facebook
Posted 18 November 2005 - 15:01
Herzlichen Dank für die schnelle Antwort.
Ich habe den Mechanismus aber leider immer noch nicht ganz verstanden:
- Wird die Entscheidung, ob die Files einer Component aktualisiert werden oder nicht, einzig und allein daran fest gemacht, ob das KEYFILE updated werden muss?
- Was passiert, wenn es kein Keyfile gibt? Werden dann alle Files untersucht? (Das möchte ich eigentlich.)
- Werden Files, die sich während des Betriebs auf dem Zielsystem änderten, prinzipiell nicht überschrieben, oder spielt das Änderungsdatum der Files in der neu zu installierenden Version noch eine Rolle?
- Wie kann ich verifizieren, dass die Hash-Einträge angelegt wurden? IS11 hat mir eine „MsiFileHash“ -Table erzeugt mit Einträgen für alle Files. Genügt das?
Danke & Gruß
Jürgen
Ich habe den Mechanismus aber leider immer noch nicht ganz verstanden:
- Wird die Entscheidung, ob die Files einer Component aktualisiert werden oder nicht, einzig und allein daran fest gemacht, ob das KEYFILE updated werden muss?
- Was passiert, wenn es kein Keyfile gibt? Werden dann alle Files untersucht? (Das möchte ich eigentlich.)
- Werden Files, die sich während des Betriebs auf dem Zielsystem änderten, prinzipiell nicht überschrieben, oder spielt das Änderungsdatum der Files in der neu zu installierenden Version noch eine Rolle?
- Wie kann ich verifizieren, dass die Hash-Einträge angelegt wurden? IS11 hat mir eine „MsiFileHash“ -Table erzeugt mit Einträgen für alle Files. Genügt das?
Danke & Gruß
Jürgen
Posted 20 November 2005 - 17:47
QUOTE |
Wird die Entscheidung, ob die Files einer Component aktualisiert werden oder nicht, einzig und allein daran fest gemacht, ob das KEYFILE updated werden muss? |
Die erste Entscheidung läuft über das Key File. Wenn es nicht überschrieben werden muss werden die anderen Dateien in der Komponente gar nicht geprüft. Wenn das Key File aber überschrieben werden muss, dann werden die anderen Dateien in der Komponente jeweils einzeln geprüft.
QUOTE |
Was passiert, wenn es kein Keyfile gibt? Werden dann alle Files untersucht? |
Wenn weder eine Datei noch ein Registry-Eintrag als Key ausgewählt sind, dann wird automatisch der Ordner selbst zum Key. Nach meinem Verständnis wird dann als erstes die Existenz des Verzeichnisses geprüft. Wenn es vorhanden ist (also nicht überschrieben werden muss) werden wie oben die Dateien nicht mehr geprüft.
QUOTE |
Werden Files, die sich während des Betriebs auf dem Zielsystem änderten, prinzipiell nicht überschrieben |
Ja, richtg.
QUOTE |
spielt das Änderungsdatum der Files in der neu zu installierenden Version noch eine Rolle? |
Nein, das kennt der Windows Installer gar nicht (in der File Tabelle stehen nur Version und Größe).
QUOTE |
Wie kann ich verifizieren, dass die Hash-Einträge angelegt wurden? IS11 hat mir eine „MsiFileHash“ -Table erzeugt mit Einträgen für alle Files. Genügt das? |
Ja, sollte genügen (wenn man davon ausgeht, dass IS sich beim Berechnen der hashwerte nicht verrechnet hat).
Stefan Krüger
InstallSite.org twitter facebook