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. | |
![]() |