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

Minor Upgrade


3 replies to this topic

JuergenS

JuergenS
  • Members
  • 5 posts

Posted 17 November 2005 - 11:16

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.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

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.

JuergenS

JuergenS
  • Members
  • 5 posts

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

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

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).