Hi @ll,
habe eben die V0.9 online gestellt (Download wie immer via Projektthread).
Die Änderungen sind für Aussenstehende eher marginal bzw. kosmetisch.
Auszug aus dem Changelog:
2012-10-21 V0.9Feature
* Update-Funktionalität eingebaut: bei vorhandenem Zielprojekt UND Protokollfile automatisch Update-Modus
* Config-Ordner: Objekte im Config-Ordner werden im Update-Modus nicht bearbeitet (Ausnahme: im Zielprojekt
fehlende Objekte werden angelegt und konfiguriert)
* alle vorhandenen Logfiles werden automatisch gelöscht (Ausnahme: jüngstes Protokoll)
Vom Handling ist das Tool meiner Meinung nach sehr einfach (auch wenn der riesige Text vielleicht einen anderen Eindruck vermittelt, hier fehlt mir noch ein wenig Feedback ;)), aber die Entscheidungslogiken im Script sind schon etwas tricky. Es ist sicher hilfreich, diese zu kennen, daher ein paar Details zur Update-Logik:
Ziel
Die Updatefunktion innerhalb des Project-Exporters ist dazu gedacht, Änderungen/Erweiterungen im Quellprojekt möglichst einfach an Dritte auszurollen. Einen zusätzlicher, updatespezifischer Aufwand (besondere Konfiguration etc) ergibt sich für den Projektautor nicht.
Das vom Project Exporter erzeugte Export-Script beinhaltet eine automatische Update-Erkennung: findet es im Zielsystem Install-Protokolle als Childs von sich selbst, schaltet es selbständig in den Updatemodus. Um ein Update im Zielsystem auszuführen kann der Anwender direkt auf eine bestehende Projektinstallation aufsetzen und muss keinerlei zusätzliche Konfigurationen vornehmen.
Update-Ablauf (für bereits im Zielsystem vorhandene Projektinstallationen):
Idealerweise wird das Exportscript in das im Zielsystem bestehende Export-Script kopiert. Beim Aufruf checkt das Update-Script nun vorhandene Child-Logfiles und wählt das jüngste Install-Protokoll aus den Childs als Update-Basis aus. Findet das Export-Script kein geeignetes Install-Protokoll, bleibt das Exportscript im Installations-Modus, es wird ein vollkommen neues Zielprojekt erzeugt.
Im Updatemodus werden grundsätzlich alle Objekte, die seit der letzten Zielprojekt-Installation im Quell-Projekt neu angelegt wurden, installiert und konfiguriert (incl. Neuverlinkung). Bestehende Objekte werden komplett und vollständig mit den Konfigurationsdaten aus dem Exportscript neu konfiguriert. Scripte werden auf Fileebene grundsätzlich gelöscht und neu geschrieben (die Script-ID im IPS Objektbaum bleibt identisch). Ausnahme: alle Objekte unterhalb einer Kategorie mit Namen „Config“ werden nicht geupdatet. Hier werden lediglich aus dem Quellprojekt kommende, neue Objekte angelegt.
Was man tun/nicht tun sollte
[ul]
[li]Keine Scripte im Zielprojekt löschen und danach updaten: Scripte werden zwar neu erstellt, Neuverlinkungen der ID’s in anderen Scripts (Objekt-Neuverlinkungen wie Events, Links etc. werden funktionieren) von und zu diesem neu angelegten Script werden fehlerhaft (wird auch als Fehler im Installationsprotokoll ausgewiesen) sein. Hier ist eine komplette Neuinstallation ratsam (Projektverzeichnis incl. aller Komponenten löschen und Export-Script erneut ausführen). Alternativ müssen diese ID’s einzeln manuell neu verlinkt werden.[/li][li]Individuelle Konfigurationen im Zielprojekt (zusätzliche Objekte, Scripte, Einstellungen) sollten nicht im Projekt selbst, sondern im speziellen „Config“-Ordner innerhalb des Projektes angelegt werden, um diese vor Updates zu schützen[/li][/ul]
Funktionsweise (Zusammenfassung)
[ul]
[li]Das Export-Script schaltet immer dann automatisch in den Update-Modus, wenn mindestens ein Installationsprotokoll als Child vom Export-Script gefunden wird[/li][li]Als Update-Basis wird immer das jüngste Installationsprotokoll unter dem Install-Script eingelesen[/li][li]Alle alten Protokollfiles (bis auf das jüngste) werden automatisch gelöscht[/li][li]Für individuelle Konfigurations-Daten kann eine „Config“-Kategorie angelegt werden: alle darin befindlichen Objekte werden beim Update nicht bearbeitet. Lediglich neue Elemente werden hinzugefügt[/li][li]Im Update-Modus wird die Konfiguration bestehender Objekte generell mit der Konfiguration aus dem Quellprojekt überschrieben (Ausnahme: Objekte in der Kategorie „Config“ werden nicht neu konfiguriert)[/li][li]Scripte werden auf File-Ebene ausgetauscht (Script-ID bleibt gleich, Ausnahme: Scripte in der Kategorie „Config“)[/li][li]Im Quellprojekt neu hinzugekommene Objekte werden im Updatemodus auch immer im Zielprojekt angelegt und konfiguriert[/li][li]Variablenprofile werden generell erneut angelegt[/li][li]WFC-Teilbaum alt wird gelöscht und neu installiert (dann immer auf Ebene 0),[/li][/ul]