Die Anzahl von Programmupdates, die auf Microsoft Windows Installer Patch-Dateien (.MSP) aufbauen, nehmen kontinuierlich zu. Dabei können Patch-Dateien auf unterschiedliche Wege ein Produkt aktualisieren.
Die folgenden Details zu einer Administrativen-Installation (Netzwerk-Installation) sind ein Bestandteil aus unserer Windows Installer Schulung ‘Schwarzgurtpaketierung’, die wir ab nächstem Jahr in unser Kursprogram aufgenommen und kürzlich als Power-Workshop im grösseren Kundenumfeld präsentiert haben.
Eine Möglichkeit der Patch-Integration ist eine Admin-Installation durchzuführen und diese mit einer Patch-Datei zu aktualisieren. Die aktualisierte Windows Installer Installation kann sowohl auf neuen Rechnern installiert werden, sowie bestehende Installationen über einen Reparatur-Zyklus auf den neuen Stand bringen.
In den meisten Fällen muss von der Original-Installation eine Admin-Installation durchgeführt werden (msiexec.exe -a datei.msi). Obwohl dies eine ‘High-Level’ Aktion ist, also eine grundlegende Windows Installer Funktion, ist dies keine Garantie dafür, dass der Software-Hersteller diese vollumfänglich unterstützt.
Ein Seiteneffekt kann die Feature Level 0 Problematik sein. Diese führt dazu, dass nicht alle Dateien extrahiert werden, da die Condition Tabelle bei einer Admin-Installation nicht abgearbeitet werden.
Es ist also vor einer Admin-Installation darauf zu achten, ob in der Feature-Tabelle ein Feature mit dem Level 0 existiert. Sollte dieses Feature-Level während einer normalen Installation geändert werden, so ist vor der Admin-Installation der Wert des Features zu erhöhen und nach der Admin-Installation wieder zurück zu stellen. Danach kann die Patch-Datei integriert werden.

Mit Hilfe der Condition Tabelle kann ein Software-Hersteller während der Installation ein Feature-Level anhand von Konditionen verändern. Dies geschieht jedoch nicht während einer Admin-Installation, was zu Dateiverlusten führen kann.
Weitere Informationen zu unseren Wise Kursen sind auf unserer Schulungsseite zu finden http://www.ontrex.ch.
In unsere Serie “Ontrex Best Practices” präsentieren wir regelmässig Packaging Best Practices aus dem Hause Ontrex.
Die ersten “Best Practices”, die wir erläutern werden, sind:
- Nach leeren Komponenten überprüfen
- Launch Conditions
Nach leeren Komponenten überprüfen
Leere Komponenten können ein Software Paket in Teufels Küche bringen und je nach Konstellation sogar einen Endlos Selfrepair verursachen.
Das Vorhanden sein solcher Komponenten kann man durch 2 Methoden überprüfen:
- Auf der Komponentenansicht ( alle Komponenten durchklicken, das heisst: erste Komponente anwählen und danach mit “Pfeil Unten” durch die gesamte Komponentenliste blättern. Verschwindet ein Plus, deutet dies auf eine leere Komponente hin und diese sollte somit gelöscht werden.

- “Ontrex Like”, eine eigene Windows Installer Validierung programmieren.

Launch Conditions
Die LaunchCondition-Tabelle, sowie die zugehörige LaunchConditions Aktion, dienen zur Überprüfung von Vorraussetzungen für die Installation. Falls die Conditions nicht erfüllt werden, bricht die Installation mit einer definierten Fehlermeldung ab.
Ein Beispiel hierfür: Ein “Office Plugin”-MSI überprüft zuerst, ob die Office Suite überhaupt installiert ist und gibt ansonsten eine Fehlermeldung aus, da es sonst keinen Sinn macht das Produkt zu installieren.
Leider vergessen viele beim Einsatz dieser Tabelle, das die Aktion LaunchConditions unkonditioniert ist und somit auch bei einer Reparatur oder Deinstallation durchgeführt wird.
Um das vorherige Beispiel weiterzuführen: Nach einer späteren Deinstallation des Office Paketes bemerkt man, dass noch das Plugin installiert ist und will dieses mit deinstallieren. Die Deinstallation schlägt aber fehl mit der Begründung das Microsoft Office nicht installiert ist.
Doch wie begegnet man diesem Problem?
Unserer Meinung nach ist eine Konditionierung der LaunchConditions-Aktion mit “Not Installed” (Case Sensitive) am sinnvollsten.
Man sollte aber nicht vergessen, dies in der InstallSequence sowie in der InstallUISequence Tabelle anzupassen.

Die Ontrex AG hat mit der Windows Installer Schulung: Power-Workshop “Software Paketierung unter Windows Vista und Windows 7.0″ am 28. Mai 2009 die ersten praktischen Beispiele der Windows Installer 5.0 Erweiterungen unter Windows 7 demonstriert.
Das Windows Installer Team hat nun einen Blog über die neuen Möglichkeiten für gemixte Per User/Per Machine Installationen unter Windows 7 bzw. Windows Installer 5.0, welches eines der Themen unseres Power-Workshop war, veröffentlicht.
Es wird umfassend auf die neuen Möglichkeiten bezüglich MSIINSTALLPERUSER und ALLUSERS eingegangen, sowie den neuen Per-User Alternativen für ProgramFilesFolder, ProgramFiles64Folder & CommonFilesFolder.
Link:
Weitere Informationen zu unserer Wise Schulung und den Power-Workshops finden Sie auf unserer Homepage.
In der 64-Bit Welt stossen aktuelle Repaketierungsumgebungen wie Wise Package Studio 7.0 SP3 & AdminStudio 2009 an Ihre Grenzen.
Der Grund? 32-Bit Applikationen sehen nur den 32-Bit “Teil” der Registry und sind somit nicht in der Lage 64Bit Keys zu erkennen. Da keines der beiden Produkte derzeit 64Bit Binaries anbietet, ist es nicht möglich eine 64Bit Software korrekt zu repaketieren. Eine detaillierte Erklärung dieses Registry-Verhaltens kann im Microsoft KB896459 nachgelesen werden.
Abhilfe schaffen kann man derzeit nur durch die Verwendung von zusätzlichen Tools, z.B Regshot Unicode 2.0, welches auch als 64Bit Variante verfügbar ist.

D.h man macht parallel zum SetupCapture einen “Regshot” Vergleich und importiert diesen danach in das Wise Package Studio Projekt. Idealerweise exkludiert man beim SetupCapture natürlich bereits alle Registry Keys.
Aber ohne Fleiss kein Preis: Die Registry Keys müssen dann leider komplett von Hand an die entsprechenden Komponenten zugewiesen werden, sowie fixe Verweise durch die entsprechenden Properties/Filekeys ersetzt werden.
Regshot Unicode bietet aber zum Glück direkt nach dem Capture die Möglichkeit Registry Keys, auch auf permanenter Basis, auszuschliessen.
Die Software ist erhältlich auf folgender Website:
http://regshot.ru/20/
Weitergehende Lektüren bezüglich 64x Registry Verhalten bekommt man seitens Microsoft hier: