Bootstrapping

Aktuell wird bei jeder Installation mit dem Windows Installer zuerst überprüft, ob der Installer auf dem Computer des Benutzers vorhanden ist. Wenn dies nicht der Fall ist, wird überprüft, ob der Benutzer und der Computer für die Installation von Windows Installer auf dem Computer bereit sind. Eine Setupanwendung Instmsi.exe ist mit dem Windows Installer SDK verfügbar, das die gesamte Logik und alle Funktionen zum Installieren von Windows Installer enthält. Diese Installation muss jedoch von einer Bootstrapping-Anwendung verwaltet werden.

Die Bootstrapping-Anwendung muss zuerst überprüfen, ob Windows Installer derzeit installiert ist. Anwendungen können die derzeit installierte Version von Windows Installer mithilfe von DllGetVersion abrufen. Wenn Windows Installer derzeit nicht installiert ist, muss die Bootstrapping-Anwendung das Betriebssystem abfragen, um zu ermitteln, welche Version von „Instmsi.exe“ erforderlich ist. Nachdem die Installation von Windows Installer initiiert wurde, muss die Bootstrapping-Anwendung Rückgabecodes der „Instmsi.exe“-Anwendung verarbeiten sowie alle Neustarts behandeln, die während der Windows Installer-Installation auftreten. Weitere Informationen finden Sie unter Ermitteln der Windows Installer-Version.

Im folgenden Beispiel wird veranschaulicht, wie die Setupanwendung, die Microsoft Office 2000 installiert, das System des Benutzers überprüft und die Windows Installer-Installation konfiguriert. Dieses Beispiel wurde speziell für die Installation von Office 2000 geschrieben und sollte nur als allgemeine Referenz verwendet werden.

Wenn ein Benutzer eine Office 2000-CD-ROM in seinen Computer einlegt, versucht Setup.exe, den Wartungsmodus oder die Setupanwendung zu starten, oder macht gar nichts, entsprechend den Anforderungen des Benutzers. Im folgenden Abschnitt wird beschrieben, wie die Office 2000-Setupanwendung namens „Setup.exe“ den Benutzer und seinen Computer qualifiziert, eine Befehlszeile erstellt und Windows Installer mithilfe der Anwendung „Msiexec.exe“ installiert.

So führt Setup.exe das Bootstrapping von Windows Installer bei der Installation von Office 2000 durch

  1. Der Benutzer legt eine Office 2000-CD-ROM in seinen Computer ein. Das Windows-Betriebssystem initiiert „Setup.exe“ mithilfe des Switch-Parameters „/autorun“ und der Datei „Autorun.inf“. Die Datei „Autorun.inf“ befindet sich im Stammverzeichnis der Office 2000 CD-ROM und enthält die folgenden Abschnitte:

    [Autorun]

    [Office Features]

    [Product Information]

    [ServicePack].

    Der Abschnitt [Autorun] enthält eine Befehlszeile, die die „Setup.exe“-Anwendung ausführt, das Symbol ausführt, das zum Anzeigen des Datenträgers verwendet wird, und Informationen zum Hinzufügen einer Option „Installieren“ und einer Option „Konfigurieren“ zum Kontextmenü für die CD-ROM enthält.

    Der Abschnitt [Office Features] enthält eine Liste der Features und Feature-Name-Paare.

    Der Abschnitt [Product Information] gibt den Namen und die Version der Anwendung an.

    Im Abschnitt [ServicePack] kann ein Netzwerkadministrator die mindestens erforderliche Service Pack-Stufe festlegen. Der Netzwerkadministrator kann diesen Abschnitt verwenden, um den Text einer Warnmeldung zu erstellen, die angezeigt wird, wenn das lokale Betriebssystem nicht über das erforderliche Service Pack verfügt.

    Im Folgenden sehen Sie ein Beispiel für „Autorun.inf“.

    [autorun] 
    OPEN=setup.EXE /AUTORUN /KEY:Software\Microsoft\Office\9.0\Common\General\InstallProductID
    ICON=setup.EXE,1
    shell\configure=&Configure
    shell\configure\command=setup.EXE
    shell\install=&Install
    shell\install\command=setup.EXE
    [OfficeFeatures]
    Feature1=ACCESSFiles
    Feature2=OfficeFiles
    Feature3=WORDFiles
    Feature4=EXCELFiles
    Feature5=PPTFiles
    [ProductInformation]
    DisplayName=Microsoft Office 9
    Version=9.0
    ProductCode={product guid}
    [ServicePack]
    MessageText="The operating system does not have a required service pack. Please download and install this from www.microsoft.com."
    SPLevel=3
    
  2. Die „Setup.exe“-Anwendung sucht nach dem „_MsiPromptForCD“-Mutex. Windows Installer erstellt diesen Mutex, wenn der Benutzer aufgefordert wird, die CD-ROM einzulegen. Das Vorhandensein des Mutex weist darauf hin, dass Windows Installer eine Installation ausführt, die die Office 2000-CD-ROM angefordert hat. In diesem Fall wird die „Setup.exe“-Anwendung sofort beendet, was die Fortsetzung der Office 2000-Installation zulässt. Wenn der Mutex nicht vorhanden ist, fährt die „Setup.exe“-Anwendung mit Schritt 3 fort, in dem ein Registrierungsschlüssel ausgewertet wird, um festzustellen, ob Office 2000 installiert ist.

  3. Die „Setup.exe“-Anwendung überprüft das Vorhandensein des Office9-Registrierungsschlüssels:

    HKCU/Software/Microsoft/Office/9.0/Common/General/InstallProductID

    Wenn dieser Registrierungsschlüssel nicht vorhanden ist, fährt die „Setup.exe“-Anwendung mit Schritt 6 fort, in dem das Betriebssystem überprüft wird, um zu bestimmen, ob es für die Installation von Office 2000 geeignet ist.

  4. Wenn der Office 2000-Registrierungsschlüssel vorhanden ist, überprüft die Setup.exe-Anwendung den aktuellen Installationszustand, indem sie MsiQueryProductState aufruft. Der Rückgabezustand „InstallState_Default“ zeigt an, dass Office 2000 bereits installiert ist, und die „Setup.exe“-Anwendung fährt mit Schritt 5 fort, in dem Office 2000 auf die Ausführung aus der Quelle überprüft wird.

    Wenn Office 2000 nicht installiert ist, fährt die „Setup.exe“-Anwendung mit Schritt 6 fort, in dem das Betriebssystem überprüft wird, um zu ermitteln, ob es für die Installation von Office 2000 geeignet ist.

  5. Die „Setup.exe“-Anwendung ruft MsiQueryFeatureState für jedes der Feature im Abschnitt [OfficeFeatures] der Datei „Autorun.inf“ auf. Wenn eins dieser Feature INSTALLSTATE_SOURCE zurückgibt, bedeutet dies, dass das Feature aus der Quelle ausgeführt wird, und die „Setup.exe“-Anwendung wird sofort beendet.

    Wenn keins der Feature INSTALLSTATE_SOURCE zurückgibt, startet die „Setup.exe“-Anwendung das Installationsprogramm „Msiexec.exe“ und zeigt den Windows Installer-Wartungsmodus an, bevor sie beendet wird.

  6. Die „Setup.exe“-Anwendung bestimmt, ob das Betriebssystem für eine Installation von Office 2000 geeignet ist. Windows XP ist erforderlich, um Office 2000 zu installieren. Wenn das Betriebssystem ein Service Pack-Update erfordert, um sich für Office 2000 zu qualifizieren, zeigt die „Setup.exe“-Anwendung den in der Datei „Autorun.inf“ angegebenen Text an. Wenn das Betriebssystem weder für Office 2000 noch für ein Upgrade von Office 2000 qualifiziert ist, zeigt die „Setup.exe“-Anwendung eine Meldung an, die verhindert, dass der Benutzer fortfahren kann.

    Wenn das Betriebssystem für Office 2000 geeignet ist, fährt die „Setup.exe“-Anwendung mit Schritt 7 fort, in dem bestimmt wird, ob Windows Installer auf dem Computer des Benutzers installiert ist.

  7. Wenn Windows Installer auf dem Computer des Benutzers vorhanden ist, startet die „Setup.exe“-Anwendung die „Msiexec.exe“-Anwendung und übergibt an diese die MSI-Datei von Office 2000.

    Wenn Windows Installer nicht auf dem lokalen Computer installiert ist, fährt die „Setup.exe“-Anwendung mit Schritt 8 fort, in dem bestimmt wird, ob das Betriebssystem für die Installation von Windows Installer qualifiziert ist.

  8. Wenn der lokale Computer für die Installation von Windows Installer geeignet ist, führt die „Setup.exe“-Anwendung die richtige Version der „Instmsi.exe“-Installeranwendung für die Plattform aus. „Setup.exe“ kann den Befehlszeilen-Switch-Parameter „/q“ übergeben, um die Benutzeroberfläche zu unterdrücken und den Benutzer daran zu hindern, Installationskonfigurationsoptionen zu ändern.

  9. Die „Setup.exe“-Anwendung lädt die neu installierte „Msi.dll“-Datei und führt einen Aufruf der MsiInstallProduct-Funktion aus, um die Anwendung des Benutzers zu installieren.

Gültige Befehlszeilenparameter für „Setup.exe“

Mit der „Setup.exe“-Anwendung können Administratoren und Benutzer Befehlszeilenoptionen an die „Msiexec.exe“-Anwendung übergeben. Weitere Informationen finden Sie unter Befehlszeilenoptionen. In der folgenden Tabelle werden die Befehlsoptionen aufgeführt, die mit Setup.exe verwendet werden können.

Option Verwendung Bedeutung
/autorun setup.exe /autorun Führt die oben beschriebene „Autorun.inf“ aus.
/a setup.exe /a Initiiert eine Administratorinstallation.
/j [u|m] Paket oder
[u|m] Paket /t Transformationsliste
oder
[u|m] Paket /g LanguageID
Kündigt ein Produkt an. Diese Option ignoriert alle Eigenschaftswerte, die in der Befehlszeile eingegeben werden. u Für den aktuellen Benutzer ankündigen.
m Für alle Benutzer des Computers ankündigen.
g Sprachbezeichner
t Wendet die Transformation auf das angekündigte Paket an.
/I setup.exe /I Office9.msi /t ProgramMgmt.mst Gibt die MSI-Datei an, die von Setup.exe installiert werden soll. Wenn die Option „/I“ nicht enthalten ist, verwendet Setup.exe die „Office9.msi“-Datei.
/o<Eigenschaft=Wert> setup.exe /o CDKEY=111111-1111 Legt Eigenschaften in der MSI-Datei fest. Setup.exe übergibt diese an msiexec, wie geschrieben.
/q setup.exe /q Legt die Benutzeroberflächenebene für die Installation fest. /q keine Benutzeroberfläche (/qn für msiexec.) /qb grundlegende Benutzeroberfläche
/qr eingeschränkte Benutzeroberfläche.
/m# setup.exe /m4 Unterstützt mehrere Lizenzen in Übereinstimmung mit Select-Verträgen. Diese Eigenschaft wird von der benutzerdefinierten Aktion „Lizenzüberprüfung“ verwendet, um das LV-Zertifikat zu schreiben. Auf die Option „/m“ muss die Anzahl der zulässigen Entsperrungen folgen. Der durch die Option „/m“ angegebene Wert sollte als Eigenschaft „M“ in der „Office9.msi“-Datei festgelegt sein. Wenn kein Wert angegeben ist, aber die Option „/m“ mit Setup verwendet wird, sollte der Wert 0 festgelegt werden. Die Option „/m“ ist erforderlich, um Select-Kunden zu unterstützen, die eine CD oder ein Netzwerk verwenden.
/settings setup.exe /settings mysettings.ini Ermöglicht Administratoren das Angeben einer INI-Datei, die alle angepassten Einstellungen enthält, die während des Office 2000-Setups übergeben werden sollen. Eine Beschreibung der INI-Datei finden Sie weiter unten.

Verwenden einer INI-Datei

Das Erstellen einer Initialisierungsdatei ist möglicherweise einfacher als das Erstellen einer langen Befehlszeile. Mit der Option „/settings“ liest die „Setup.exe“-Anwendung die angegebene INI-Datei und erstellt eine Befehlszeile, die an die „Msiexec.exe“-Anwendung übergeben wird. Nur Eigenschaften, die in der Befehlszeile unterstützt werden, werden auch in der INI-Datei unterstützt. Wenn eine Eigenschaft oder ein Wert sowohl in der INI-Datei als auch in der Befehlszeile gefunden wird, überschreiben die Befehlszeileneinstellungen die INI-Dateieinstellungen.

Das Format der INI-Datei lautet:

[msi]

[mst]

[options]

[Display]

Der Abschnitt [msi] der INI-Datei gibt den Pfad zum Installationspaket für die Installation an. Dies entspricht der Option „/I“ in der Befehlszeile.

Der Abschnitt [mst] der INI-Datei gibt den Pfad zu Transformationen an, die mit dieser Installation verwendet werden. Dies entspricht der Option „/j“ in der Befehlszeile. Mehrere Transformationen werden jeweils in einer anderen Zeile mit MST1 MST(N) angegeben. Wenn sie in die Befehlszeile analysiert wird, wird die Liste in der INI-Datei von links nach rechts gelesen. Beachten Sie, dass die dem MST(N)-Titel zugeordnete Zahl nur zur Aufrechterhaltung eindeutiger Bezeichner vorhanden ist und keine programmiertechnische Bedeutung hat.

Im Abschnitt [options] können Netzwerkadministratoren Eigenschaften in den MSI- oder MST-Dateien festlegen und außer Kraft setzen. In der INI-Datei festgelegte Optionen werden der Befehlszeile mithilfe der Option „/o“ hinzugefügt. Jede Option im Abschnitt „options“ muss über einen Eigenschaftsnamen und einen Wert verfügen.

Der Abschnitt [Display] wird verwendet, um die während des Setups verwendete Benutzeroberflächenebene festzulegen. Dies entspricht der Option „/q“ in der Befehlszeile. Gültige Werte sind „none“, „basic“, „reduced“ und „full“.

INI-Beispieldatei

[MSI]

MSI=\\sourceshare\Office2000\Office2000.msi

[MST]

MST1=\\sourceshare\Office2000\trns1.mst

MST2=\\sourceshare\Office2000\trns2.mst

[Options]

PUBLICPROPERTY=your value

[Display]

Display=None