Immer wieder stellt sich die Frage ob man für unterschiedliche Zielsysteme bzw. Zielsysteme mit unterschiedlichen Ausprägungen mehrere MSI Pakete machen soll oder ob alles in einem MSI abgehandelt werden kann.
In diesem Artikel möchte ich eine mögliche Vorgehensweise aufzeigen, wie verschiedene Anforderungen in einem MSI Paket berücksichtigt werden können.
Umgebungsvariablen abfragen
Man trifft die Situation an, dass Clients zwar das gleich OS installiert haben, sich aber minimal unterscheiden z.B. in Bezug auf Einstellungen welche zur Identifikation dienen. Beispielsweise ist eine Umgebungsvariable ABTEILUNG vorhanden. Das zu installierende MSI soll nun bei Abeilung A andere Dateien als bei Abteilung B installieren.
Folgende Schritte sind dafür nötig:
- Erstellen einer Komponente pro Abteilung. In unserem Fall gibts eine Komponente „DateienAbteilungA“ und eine „DateienAbteilungB“, welche die jeweiligen Dateien enthalten.
- Erstellen einer Public Property, welche später den Wert der Umgebungsvariable enthält. Nicht vergessen, diese auch in die SecureCustomProperties aufzunehmen.
- Einrichten AppSearch und RegLocatorDen Umstand, dass Umgebungsvariablen in der Registry gespeichert werden, machen wir uns zu Nutzen. Mittels AppSearch suchen wir in der Registry nach dem Wert der Variable und speichern diesen in unserer Property.
- Die Komponenten, welche die entsprechenden Dateien nun installieren sollen, erhalten eine Condition. In unserem Beispiel lauten diese:
So kann mit vergleichsweise wenig Aufwand ein MSI erstellt werden, welches auf verschiedene Bedingungen auf den Zielrechnern reagieren kann.