ich bin neu hier...
wollte erstmal sagen, daß ich das Forum klasse finde...
EDIT: Sorry das Posting ist ziemlich lang geworden...bitte trotzdem lesen!
nun zu meinem Problem:
Fast alle Dateien meiner Installation habe KEINE Versionsnummer. Ich benutze statische Dateiverknüpfungen, die ich mit Hilfe des Komponenten-Assistenten automatisch erstellt habe (nach den "Best-Practise"-Regeln). Die Erstinstallation ist kein Problem... aber die Folgeinstallationen (Minor/Major-Upgrades, Patches) ist problematisch.
Ich habe mir die Dateiüberschreibungsregeln angeschaut: Da meine Dateien ja keine Versionsnummer besitzen und (hoffentlich) nicht auf dem PC des Anwenders verändert werden werden die Hash-Werte der Datein benutzt, um festzustellen, ob die Datei ersetzt werden soll. Außerdem habe ich gelesen, daß bei der Überschreibung von Datein immer nur die Key-Dateien untersucht werden. Wenn die Key-Datei NICHT ersetzt wird, werden die anderen Dateien (Companion-Dateien) dieser Komponente ebenfalls NICHT ersetzt, egal ob sie sich geändert haben oder nicht. Andersrum funktioniert es genauso: Wenn die Key-Datei ersetzt wird, werden auch die anderen (Nicht-Key-Dateien) ersetzt.
Und genau das ist mein Problem. Wenn sich eine meiner Companion-Dateien ändert, ist es möglich, daß die Datei bei der Installation nicht ersetzt wird, weil die Key-Datei dieser Komponente sich nicht geändert hat!!!!
Ich hätte gerne daß alle Dateien immer überschrieben werden oder daß MSI bei jeder Datei prüft, ob diese Datei ersetzt werden soll oder nicht.
Zuerst dachte ich ich könnte das Problem lösen in dem ich die Property REINSTALLMODE = a setze. Leider habe ich dann erfahren, daß Patches mit dieser Einstellung nicht mehr möglich sind, weil der Patch die ursprüngliche MSI-Datei verlangt. Heißt das, wenn ich auf Patches verzichten würde (als Minimallösung) könnte ich für Minor/Major-Upgrades mit REINSTALLMODE = a arbeiten...?
Gibt es für mein Problem eine Lösung (bei der auch Patches funktionieren)????
Die einzige Lösung, die mir eingefallen ist: Jede Datei als Key-Datei in einer eigene Komponente.
Das Problem dieser Lösung: Das Projekt besteht aus über tausend Dateien... Gibt es eine Möglichkeit mit InstallShield die Dateien auf diese Art (eine Datei pro Komponente) automatisch einzufügen oder muß ich jede Datei von Hand einfügen ???
Der Komponenten-Assistent fügt die Dateien immer nach den "Best-Practise"-Regeln ein.
Gibt es irgendeine Lösung für mein Problem??? Oder bin ich total auf dem Holzweg und es gibt eine ganz andere, bessere Lösung???? Bitte helft mir !!!!! Bin wirklich verzweifelt... !!!
Vielen Dank schonmal im Vorraus...
Edited by herrbecht, 04 October 2004 - 13:54.