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:

  1. Erstellen einer Komponente pro Abteilung. In unserem Fall gibts eine Komponente „DateienAbteilungA“ und eine „DateienAbteilungB“, welche die jeweiligen Dateien enthalten.
  2. Erstellen einer Public Property, welche später den Wert der Umgebungsvariable enthält. Nicht vergessen, diese auch in die SecureCustomProperties aufzunehmen.
    Windows Installer Public Property
  3. 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.
    1. AppSearch
      Windows Installer appSearch
      RegLocator
      Windows Installer regLocator
  4. Die Komponenten, welche die entsprechenden Dateien nun installieren sollen, erhalten eine Condition. In unserem Beispiel lauten diese:
    1. Komponente A
      Windows Installer Component Condition
      Diese wird nur installiert wenn die Property „ABTEILUNG“ den Wert A enthält bzw. die Umgebungsvariable.
    2. Komponente B
      MSI Component Condition
      Diese wird nur installiert wenn die Property „ABTEILUNG“ den Wert B enthält bzw. die Umgebungsvariable.

So kann mit vergleichsweise wenig Aufwand ein MSI erstellt werden, welches auf verschiedene Bedingungen auf den Zielrechnern reagieren kann.

This Area is Widget-Ready

You can place here any widget you want!

You can also display any layout saved in Divi Library.

Let’s try with contact form: