Eigenbau und Erstellung eines MSI Paketes


Eines der vielen Programme, die die Erstellung eines MSI Paketes unterstützen ist WinInstall. Dieses Programm liegt auf der Windows 2000 Server CD unter VALUEADD\MGMT als Light Edition (WinInstall LE).

Beim 2003 Server hat es das Programm nicht mehr auf die CD geschafft.

Der WinInstall bietet grundsätzlich 2 Möglichkeiten ein MSI Paket zu erstellen.
Der lange Weg führt über die "wiconsole.exe" die einen kompletten Eigenbau des Paketes erlaubt, oder auch die Manipulation eines vorhandenen. Den Umgang und Hilfe zur wiconsole.exe findet ihr in den Beispielen zu diesem Menüpunkt.

Der einfachere Weg, der aber auch nicht immer direkt zum Erfolg führt ist: die "disco32.exe".


Die Idee:
Was macht die disco32.exe? Sie ermöglicht es, das System auf Änderungen zu "discoveren" (untersuchen).
Einigen von euch ist vielleicht das SYSDIFF von NT4 bekannt. Genaugenommen verhällt sich das disco32 genauso.

Es erstellt im ersten Schritt einen Snapshot vom aktuellen System. Der genaue IST-Zustand von Dateien und Registry wird protokolliert. Dann fordert es zur Installation der gewünschten Software auf und führt danach eine erneute Untersuchung des Systems durch und erstellt aus der festgestellten Differenz von "vorher" und "nachher" ein MSI Paket. Das ist schon alles.
Es werden alle Änderungen inkl. der Dateien  und Registry Einträge, die sich mit der Installation der Software ergeben habe in einen vorher definierten Pfad kopiert und in diesem ist dann auch das MSI zu finden.
Aus dem Umstand heraus, daß alle geänderten Dateien in diesem Pfad landen, sollte man je nach Softwareinstallation dafür Sorge tragen, daß im Zielverzeichnis auch genügend Platz ist.

Der Vorgang ist mit 3 Schritten strukturell erledigt und völlig simpel:
1.    Snapshot erstellen (Ist Zustand protokollieren)
2.    Software installieren
3.    Differenz erstellen



Was sich so simpel anhört ist in der Praxis mit einem großen Zeitaufwand, je nach Rechner, verbunden. Die Protokollierung des IST Zustandes und der nachträgliche Vergleich braucht seine Zeit. Differenzpakete sollte man also an einem aktuellen System erstellen, da es sonst zu einem Kaffeschock aufgrund der 3 Liter Wartezeit kommen könnte :-)

Schauen wir uns den Wizard mal an, wobei ich persönlich finde, daß es aufgrund des Assistenten kaum einen Erklärungsbedarf benötigt, deswegen sind nicht alle Schritte mit Screenshots dokumentiert.

  1. Den "Welcome to Wizard" Screen spare ich mir mal ...
 
  2. Name der Anwendung und Speicherpfad auswählen
 
 
  3. Das "Workdrive" auswählen auf dem die Temporären Daten gespeichert werden.
 
 
  4. Die Laufwerke auswählen, die durchsucht und protokolliert werden sollen. Also normalerweise nur die, auf denen Veränderungen stattfinden können. Wenn der Ziel-Ordner und das System jeweils auf "C:\" liegen, dann macht es keinen Sinn auch nch das Laufwerk D: zu durchsuchen ...
 
 
  5. Vordefinierte Exclusion für Dateisystem und Registry können noch bearbeitet werden, ist aber idR nicht notwendig
 
 
  6. Nach "Finish" started der Scan.
 
 
  7. Nach "OK" kann über den bekannten Öffnen Dialog die Setup Datei des Programmes geöffnet werden
 
 
  8. Nach Beendigung des Setups startet man den Wizard (disco32.exe) erneut und erhält die Möglichkeit die Änderungen zu untersuchen, alternativ kann man auch von vorne beginnen.
 


 
  9. Am Ende kommt noch eine Zusammenfassung mit möglichen Fehlern und danach ist das Paket fertig.
 
 
  10. Im Package Ordner finden wir jetzt alle relevanten geänderten Dateien.
 
 
  11. Damit es sich zu einem einzigen Paket, zu einer Datei zusammenpacken, lässt gibt es einen kleinen Trick, der über die WICONSOLE.exe führt. Wir öffnen das Paket mit dieser und komprimieren es.
 
 
  12. Jetzt sind alle Änderung in ein Paket verpackt und wir können es weiterverwenden.
 


(c) 2003 - heute, Mark Heitbrink, weitere Informationen unter WebSite-Info\Copyright