Shop

AdminStudio
InstallShield
Advanced Installer
weitere Produkte

InstallShield

InstallShield 2016
Windows 10 Kacheln anpassen, Universal Windows Platform (UWP) und Nano Server, u.a.
Details hier
Die Update-Berechtigung von InstallShield 2014 endet am 15. Mai
JETZT UPDATEN

AdminStudio

AdminStudio 30% Aktionen

30% Rabatt beim Kauf von AdminStudio, nachdem Ihr Wartungsvertrag abgelaufen ist

30% Rabatt beim Wechsel auf eine höhere Edition oder Kauf eines Zusatzpakets

Details auf Anfrage

InstallShield und AdminStudio Schulungen

Offizielle Kurse mit Zertifikat

weitere Infos


 

Microsoft Windows Installer 2.0

Zusammenfassung: Microsoft hat die Version 2.0 der Windows Installer Laufzeitdateien und des Windows Installer SDK freigegeben. Neben Fehlerbehebungen und Unterstützung für Windows XP und 64-Bit-Applikationen enthält diese Version einige neue Eigenschaftswerte (Properties) für Betriebssystem-Informationen. Damit kann man sehr einfach feststellen, ob es sich um die Workstation- oder Server-Variante von Windows NT handelt, oder Windows XP Professional von der Home Edition unterscheiden. Auch das Erstellen von Updates wird einfacher, denn komplizierte Konstruktionen mit ADDLOCAL und REINSTALL sind jetzt nicht mehr nötig. Außerdem ist nach dem Installieren der Laufzeitdateien kein Neustart mehr erforderlich. Erfreulicherweise kann man von diesen Verbesserungen auch in bestehenden Projekten profitieren, allerdings sind teilweise einige Modifikationen im Installations-Tool erforderlich, um die neuen Laufzeitdateien einzubinden.  Als Folge der Verbesserungen und Fehlerbehebungen in MSI 2.0 werden sich vorhandene Installationen und Patches möglicherweise ungewohnt verhalten oder sogar fehlschlagen. Selbst wenn Sie MSI 2.0 nicht mit Ihrem eigenen Setup-Paket vertreiben, kann die neue Version bereits auf dem Zielsystem vorhanden sein. Sie sollten MSI 2.0 daher zumindest in Ihre Test-Szenarien einbeziehen.

Letzte Aktualisierung: 2002-11-29

Bezugsquellen für MSI 2.0

Bevor Sie MSI 2.0 ausprobieren, möchte ich Sie warnen: Durch die Installation des neuen SDK werden gemeinsam genutzte Dateien aktualisiert, die InstallShield bei der Erstellung der Setup-Medien verwendet. Um Ihre Produktions-Maschine in einem definierten funktionsfähigen Zustand zu erhalten, bis Sie alle Auswirkungen von MSI 2.0 erforscht haben, sollten Sie eine Test-Maschine verwenden, um mit dem neuen SDK und den Laufzeitdateien zu experimentieren.

Pakete zur Installation der neuesten Laufzeitdateien können von den folgenden Adressen heruntergeladen werden:

Für Windows NT 4 und Windows 2000:
http://www.microsoft.com/downloads/release.asp?releaseid=32832

Für Windows 95, Windows 98 und Windows Me:
http://www.microsoft.com/downloads/release.asp?releaseid=32831

Die Laufzeitdateien sind sprachneutral.

Bitte beachten Sie, dass sich die Systemvoraussetzungen für Windows NT 4 geändert haben. Hier wird jetzt Service Pack 6 benötigt, während bei früheren MSI-Version das Service Pack 3 ausreichend war.

Beide Installationspakete haben den Dateinamen Instmsi.exe. Zur Verwendung mit InstallShield sollten Sie die Unicode-Version (für Windows NT/2000) umbenennen in InstmsiW.exe, und die ANSI-Version (für Windows 95/98/ME) in InstmsiA.exe.

Falls Sie die MSI 2.0 Laufzeitdateien vor dem 25. September 2001 heruntergeladen haben, sollten Sie die Version für Windows 9X nochmals herunterladen.
MSI 2.0 wurde erstmals am 28. August 2001 veröffentlicht, mit der Versionsnummer 2.0.2600.0. Diese Version wurde jedoch etwa drei Wochen später wieder zurückgezogen. Am 25. September wurde MSI 2.0 dann wieder bereitgestellt, mit einer neuen Version 2.0.2600.1 für Windows 9X. Die Unicode-Version ist von dieser Änderung nicht betroffen. Es gibt keine offiziellen Informationen über die Gründe für diesen Vorgang, aber Gerüchten zufolge waren Probleme mit Windows ME entdeckt worden.

Die Dokumentation für Windows Installer 2.0 ist in der Ausgabe August 2001 des Microsoft Platform SDK enthalten. Sie können das SDK auf CD bestellen oder herunterladen von http://www.microsoft.com/msdownload/platformsdk/sdkupdate. Sie können die Dokumentation auch online lesen unter http://msdn.microsoft.com/library/en-us/msi/hh/msi/wiport_6gf9.asp

Neue Eigenschaftswerte (Properties) für Betriebssystem-Informationen in MSI 2.0

MSI 2.0 enthält eine ganze Reihe neuer Properties. Viele davon haben mit der Installation von .NET Assemblies und 64-Bit-Applikationen zu tun, etwa die Properties MsiNetAssemblySupport und System64Folder. Um diese neuen Technologien zu unterstützen, ist InstallShield Developer 7 erforderlich. Aber es gibt einige neue Properties, die auch für "altmodische" Applikationen nützlich sind. Sie können verwendet werden, um den genauen Typ des Betriebssystems zu erkennen, ohne Registrierungs-Einträge untersuchen zu müssen. Die folgende Tabelle führt einige dieser Eigenschaftswerte auf, zusammen mit dem Wert des VersionNT Property.

(A) Wert des Property VersionNT
(B) Wert des Property MsiNTProductType
(C) Wert des Property MsiNTSuiteEnterprise
(D) Wert des Property MsiNTSuitePersonal

Betriebssystem (A) (B) (C) (D)
Windows NT 4.0 Workstation 400 1 - -
Windows NT 4.0 Domain Controller 400 2 - -
Windows NT 4.0 Server 400 3 - -
Windows 2000 Professional 500 1 - -
Windows 2000 Domain Controller 500 2 - -
Windows 2000 Server 500 3 - -
Windows 2000 Advanced Server 500 3 1 -
Windows XP Home Edition 501 1 - 1
Windows XP Professional 501 1 - -
Windows .NET Domain Controller 502 2 - -
Windows .NET Standard Server 502 3 - -
Windows .NET Enterprise Server 502 3 1 -

Informationen über die Windows .NET Server-Varianten können sich ändern, da sie sich noch in der Beta-Phase befinden.

Die folgenden Properties sind nur für Windows 2000 und höher gültig:

Fehlerbehebungen

Obwohl es keine offiziellen Release Notes gibt, die auflisten, welche Probleme in MSI 2.0 behoben wurden, haben Tests gezeigt, dass einige Fehler beseitigt wurden, zum Beispiel:

Andere Fehler dagegen sind nicht behoben worden. So funktioniert das Feld MinVersion in der AppSearch Tabelle nach wie vor nicht entsprechend der Dokumentation. (Die Dateiversion muss größer sein, als der Wert, den Sie im Feld MinVersion eingeben, nicht größer oder gleich, wie in der MSI 2.0 Hilfedatei steht.)

Updates und Patches

MSI 2.0 beseitigt einige der seltsamen Einschränkungen und Regeln, die Sie beim Erstellen einer neuen Version Ihres Setups beachten mussten:

Die Bedingungen für die Versionsbeziehungen bei Patches wurden geändert - das heißt, eigentlich verhalten sie sich jetzt so, wie es ursprünglich beabsichtigt war. Falls Sie einen Patch erstellt haben, der für verschiedene ältere Versionen Ihrer Software angewendet werden kann, und dabei die Vorgabe "Neue Version >= Frühere Version" von InstallShield verwendet haben, dann wird Ihr Patch wahrscheinlich nicht mehr funktionieren! Beim Installieren eines solchen Patches tritt die folgende Fehlermeldung auf: 2768 "Transform in patch package is invalid". Die empfohlene Einstellung für die Versionsbeziehung ist "Neue Version = Frühere Version". Das sieht auf den ersten Blick falsch aus, weil die Bezeichnungen im Assistenten zur Patcherstellung irreführend sind. Die eigentlich Bedeutung dieser Einstellung ist nämlich "Vorhandene Version = Basis-Version", wobei die Basis die Version ist, für die der Patch erstellt wurde. Wenn Sie zum Beispiel einen Patch erstellen, der Version 1.0.1 eines Produktes auf Version 1.0.2 aktualisiert, dann ist die Basis-Version 1.0.1. Dieser Patch sollte nur auf Version 1.0.1 anwendbar sein, nicht auf höhere Versionen. Gründe für diese Verwirrung sind zum einen, dass die Versionsbeziehung in den ersten Ausgaben des Windows Installer SDK falsch beschrieben war, und zum anderen, dass sie sich in MSI 2.0 zum ersten Mal exakt so verhält wie dokumentiert.

Einige weitere Fehler im Patch-Prozess wurden ebenfalls behoben.

Weitere Verbesserungen

Übersicht über die Windows Installer Versionen

Die folgende Tabelle listet alle freigegebenen Versionen der Windows Installer Laufzeitdateien auf:

Release Version von Msi.dll Anmerkungen
Windows Installer 1.0 1.0.5104.0 Enthalten in Office 2000 und veröffentlicht als Installationspaket
Windows Installer 1.10 1.10.1029.0 Enthalten in Windows 2000
1.10.1029.1 Veröffentlicht als Installationspaket
Windows Installer 1.11 1.11.1314.0 Enthalten in Windows 2000 Service Pack 1
1.11.2405.0 Enthalten in Windows 2000 Service Pack 2
Windows Installer 1.20 1.20.1410.0 Enthalten in Windows Millennium Edition
1.20.1827.1 Veröffentlicht als Installationspaket
Windows Installer 2.0 2.0.2600.0 Enthalten in Windows XP und veröffentlicht als Installationspaket (siehe Anmerkung unten)
2.0.2600.1 Veröffentlicht als Installationspaket für Windows 95/98/ME
Enthalten in Windows 2000 Service Pack 3
2.0.2600.2 Veröffentlicht als Installationspaket (nicht für Windows XP)
2.0.2600.1106 Enthalten in Windows XP Service Pack 1
2.0.3590.0 Enthalten in Windows .NET Server (Beta 3)

Anmerkung: Die erste freigegebene Fassung von MSI 2.0 hatte sowohl in der Unicode- als auch in der ANSI-Ausgabe die Versionnummer 2.0.2600.0. Aufgrund eines Problems in der ANSI-Ausgabe wurde diese später durch Version 2.0.2600.1 ersetzt. Die Unicode-Ausgabe trägt weiterhin die Versionsnummer 2.0.2600.0.

Unterstützte Betriebssystemversionen

Mit Version 2.0 von Instmsi.exe können die Windows Installer Laufzeitdateien auch auf Windows 2000 und Windows Me aktualisiert werden. Windows XP enthält bereits die neueste Version. Beachten Sie, dass bei Windows NT 4 jetzt das Service Pack 6 erforderlich ist, während für MSI 1.x das Service Pack 3 ausreichend war.

Die folgende Tabelle zeigt, auf welchen Windows-Versionen die Windows Installer Laufzeitdateien installiert werden können:

Windows Version Unterstützte Windows Installer Versionen
1.0 1.1 1.2 2.0
Windows 95 + + + +
Windows 98 + + + +
Windows Me - - + +
Windows NT 4 SP3 + + + -
Windows NT 4 SP6 + + + +
Windows 2000 - * - +
Windows XP - - - *
Windows .NET Server - - - *

- nicht unterstützt
+ kann installiert bzw. aktualisiert werden
* enthalten, kann nicht installiert werden

Installation der MSI 2.0 Laufzeitdateien mit InstallShield

InstallShield Developer 7.0

InstallShield Developer 7.00 kann die Windows Installer Laufzeitdateien auf allen Betriebssystemen (einschließlich Windows 2000) aktualisieren. Allerdings sind dazu im Moment noch einige Anpassungen erforderlich. InstallShield Developer 7.01 verwendet bereits MSI 2.0, die unten beschriebenen Änderungen sind dort nicht erforderlich.

Bevor Sie mit den Änderungen beginnen, sollten Sie Sicherheitskopien aller betroffenen Dateien anlegen.

1. Aktualisieren der Windows Installer Installationspakete

Nachdem Sie die Instmsi.exe Dateien für Windows NT/2000 und Windows 95/95/Me heruntergeladen haben, benennen Sie sie um in InstmsiW.exe bzw. InstmsiA.exe. Kopieren Sie sie in den Ordner für auslieferbare Dateien, normalerweise [ProgramFilesFolder]\InstallShield\Developer\Redist\Language Independent\i386.

2. Aktualisieren der MSI Versionsnummer setup.ini

Um den Eintrag MsiVersion zu ändern, der jedes Mal in den Abschnitt [Startup] der Datei setup.ini geschrieben wird, wenn Sie ein Release erzeugen, öffnen Sie folgenden Registrierungsschlüssel:
HKEY_LOCAL_MACHINE\Software\InstallShield\Devloper\7.0
Ändern Sie den Wert des Eintrags mit Namen "Msi Version" auf "2.0.2600.1".

3. Freigeben des MSI Update für Windows 2000

Ändern Sie die Vorlagedatei für setup.ini die sich normalerweise unter [ProgramFilesFolder]\InstallShield\Developer\Support\Setup.ini befindet, indem Sie folgenden Abschnitt hinzufügen:

[Win2K]
MajorVer=5
MinorVer=0
BuildNo=2195
PlatformId=2

In der gleichen Datei fügen Sie im Abschnitt [SupportOS] folgende Zeile hinzu:
Win2K=1

4. Anpassen des benötigten Service Packs für Windows NT 4

Eine weitere Änderung in der Vorlagedatei für Setup.ini ist erforderlich, um sicherzustellen, dass bei Windows NT4 das Service Pack 6 oder höher installiert ist. Erhöhen Sie dazu im Abschnitt [WinNT4] den Eintrag für ServicePack von 768 (für SP3) auf:
ServicePack=1536
(Anmerkung: 768 = 0x300, 1536 = 0x600)

Sie sollten auch die Fehlermeldung anpassen, die angezeigt wird, wenn diese Voraussetzung nicht erfüllt ist. Im Verzeichnis [ProgramFilesFolder]\InstallShield\Developer\Support\ finden Sie INI Dateien mit Fehlermeldungen für jede Sprache, z.B. 0x407.ini für die deutschen Meldungen. Öffnen Sie die Datei mit einem Texteditor und ändern Sie den Eintrag mit Nummer 1150, so dass Service Pack 6 für Windows NT 4 verlangt wird.

5. Unterdrücken des Neustarts nach der Installation von MSI 2.0

Dieser Schritt ist optional. Mit MSI 2.0 ist es möglich, den Neustart, der eventuell nach dem Installieren der Laufzeitdateien erforderlich ist, aufzuschieben, bis das eigentliche Setup beendet ist. Die interne Funktionsweise ist weiter unten beschrieben. InstallShield Developer 7 hat eine Einstellung im Release-Assistenten um den Neustart zu verzögern. Allerdings wird diese Einstellung in Version 7.00 nicht in die Datei Setup.ini übernommen. Um den Neustart zu unterdrücken können Sie manuell den folgenden Eintrag im Abschnitt [Startup] der Setup.ini machen:

SuppressReboot=Y

Wenn Sie diese Änderung an der Vorlagedatei für setup.ini durchführen, werden alle Ihre Setups den Neustart nach Instmsi.exe unterdrücken. Beachten Sie, dass Microsoft empfiehlt, in diesem Fall am Ende der eigentlichen Installation einen Neustart durchzuführen. ISD 7.00 sorgt dafür nicht automatisch, deshalb sollten Sie eine ScheduleReboot Aktion einfügen.

InstallShield - Windows Installer Edition 2.0

InstallShield - Windows Installer Edition 2.03 (IPWI) kann die Windows Installer Laufzeitdateien auf Windows 2000 aktualisieren, aber dazu muss die Datei Setup.exe durch eine spezielle Version ersetzt werden. Das Unterdrücken des Neustarts nach der Installation von MSI 2.0 wird von dieser Setup.exe nicht unterstützt.

Bevor Sie mit den Änderungen beginnen, sollten Sie Sicherheitskopien aller betroffenen Dateien anlegen.

1. Aktualisieren der Windows Installer Installationspakete

Nachdem Sie die Instmsi.exe Dateien für Windows NT/2000 und Windows 95/95/Me heruntergeladen haben, benennen Sie sie um in InstmsiW.exe bzw. InstmsiA.exe. Kopieren Sie sie in den Ordner für auslieferbare Dateien, normalerweise [ProgramFilesFolder]\InstallShield\Professional - Windows Installer Edition\Redist\Language Independent\i386.

2. Ersetzen des Setup.exe Startprogramms

Laden Sie die spezielle Version der Datei Setup.exe von InstallShield Knowledge Base Artikel Q105501 herunter. Kopieren Sie sie in den Ordner für auslieferbare Dateien, normalerweise [ProgramFilesFolder]\InstallShield\Professional - Windows Installer Edition\Redist\Language Independent\i386.

Diese neue Setup.exe sollte nicht verwendet werden, um MSI 1.2 zu installieren. Sie kann auch nicht mit früheren Versionen von InstallShield for Windows Installer verwendet werden.

3. Aktualisieren der MSI Versionsnummer setup.ini

Um den Eintrag MsiVersion zu ändern, der jedes Mal in den Abschnitt [Startup] der Datei setup.ini geschrieben wird, wenn Sie ein Release erzeugen, öffnen Sie folgenden Registrierungsschlüssel:
HKEY_LOCAL_MACHINE\Software\InstallShield\ISWI\2.0
Ändern Sie den Wert des Eintrags mit Namen "Msi Version" auf "2.0.2600.1".

4. Anpassen des benötigten Service Packs für Windows NT 4

Sie sollten die Fehlermeldung anpassen, die angezeigt wird, wenn eine Systemvoraussetzung nicht erfüllt ist. Öffnen Sie die Datei [ProgramFilesFolder]\InstallShield\Professional - Windows Installer Edition\Support\Setup.ini mit einem Texteditor. Sie sehen Abschnitte mit Fehlermeldungen für jede Sprache, z.B. [0x407] für die deutschen Meldungen. Ändern Sie den Eintrag mit Nummer 1150, so dass Service Pack 6 für Windows NT 4 verlangt wird.

InstallShield Express 3.5

InstallShield Express 3.52 (und 3.51 für die englische Version) kann die Windows Installer Laufzeitdateien auf allen Betriebssystemen (einschließlich Windows 2000) aktualisieren. Allerdings sind dazu im Moment noch einige Anpassungen erforderlich. Mit dem Erscheinen des nächsten Maintenance Pack werden diese voraussichtlich hinfällig.

Bevor Sie mit den Änderungen beginnen, sollten Sie Sicherheitskopien aller betroffenen Dateien anlegen.

1. Aktualisieren der Windows Installer Installationspakete

Nachdem Sie die Instmsi.exe Dateien für Windows NT/2000 und Windows 95/95/Me heruntergeladen haben, benennen Sie sie um in InstmsiW.exe bzw. InstmsiA.exe. Kopieren Sie sie in den Ordner für auslieferbare Dateien, normalerweise [ProgramFilesFolder]\InstallShield\InstallShield Express\Redist\Language Independent\i386.

2. Aktualisieren der MSI Versionsnummer setup.ini

Um den Eintrag MsiVersion zu ändern, der jedes Mal in den Abschnitt [Startup] der Datei setup.ini geschrieben wird, wenn Sie ein Release erzeugen, öffnen Sie folgenden Registrierungsschlüssel:
HKEY_LOCAL_MACHINE\Software\InstallShield\Express\3.5
Ändern Sie den Wert des Eintrags mit Namen "Msi Version" auf "2.0.2600.1".

3. Freigeben des MSI Update für Windows 2000

Ändern Sie die Vorlagedatei für setup.ini die sich normalerweise unter [ProgramFilesFolder]\InstallShield\InstallShield Express\Support\Setup.ini befindet, indem Sie folgenden Abschnitt hinzufügen:

[Win2K]
MajorVer=5
MinorVer=0
BuildNo=2195
PlatformId=2

In der gleichen Datei fügen Sie im Abschnitt [SupportOS] folgende Zeile hinzu:
Win2K=1

4. Anpassen des benötigten Service Packs für Windows NT 4

Eine weitere Änderung in der Vorlagedatei für Setup.ini ist erforderlich, um sicherzustellen, dass bei Windows NT4 das Service Pack 6 oder höher installiert ist. Erhöhen Sie dazu im Abschnitt [WinNT4] den Eintrag für ServicePack von 768 (für SP3) auf:
ServicePack=1536
(Anmerkung: 768 = 0x300, 1536 = 0x600)

Sie sollten auch die Fehlermeldung anpassen, die angezeigt wird, wenn diese Voraussetzung nicht erfüllt ist. Im Verzeichnis [ProgramFilesFolder]\InstallShield\InstallShield Express\Support\ finden Sie INI Dateien mit Fehlermeldungen für jede Sprache, z.B. 0x407.ini für die deutschen Meldungen. Öffnen Sie die Datei mit einem Texteditor und ändern Sie den Eintrag mit Nummer 1150, so dass Service Pack 6 für Windows NT 4 verlangt wird.

5. Unterdrücken des Neustarts nach der Installation von MSI 2.0

Dieser Schritt ist optional. Mit MSI 2.0 ist es möglich, den Neustart, der eventuell nach dem Installieren der Laufzeitdateien erforderlich ist, aufzuschieben, bis das eigentliche Setup beendet ist. Die interne Funktionsweise ist weiter unten beschrieben. InstallShield Express 3.5 hat in den Eigenschaften des Release eine Option " MSI Engine-Neustart unterdrücken" die Sie einfach auf "Ja" stellen. Beachten Sie, dass Microsoft empfiehlt, in diesem Fall am Ende der eigentlichen Installation einen Neustart durchzuführen. ISX 3.5 sorgt dafür nicht automatisch, deshalb sollten Sie "Neustart am Ende durchführen" aus dem Katalog für Benutzerdefinierte Aktionen hinzufügen.

InstallShield Express 3.0

Offiziell unterstützt InstallShield Express nicht die Aktualisierung der Windows Installer Laufzeitdateien auf Windows 2000. Allerdings ist Express 3.0 intern recht ähnlich wie InstallShield - Windows Installer Editon 2.0, und Anwender haben berichtet, dass das oben für InstallShield - Windows Installer Edition 2.0 beschriebene Verfahren auch für InstallShield Express 3.0 funktioniert, einschließlich der speziellen Setup.exe aus dem Knowledge Base Artikel.

Andere Werkzeuge

Möglicherweise setzen Sie ein Installationswerkzeug ein, das nicht auf Windows Installer basiert, etwa InstallShield Professional (Standard Edition). Wenn Sie ein anderes Setup, das Windows Installer verwendet, als Unter-Installation ausführen wollen, müssen Sie dennoch die MSI Laufzeitdateien installieren oder aktualisieren. Dazu finden Sie hier einige Hinweise.

Erkennen und Aktualisieren der Windows Installer Version

Um festzustellen, welche Version von Windows Installer gegenwärtig auf einem Computer installiert ist, überprüfen Sie die Versionsnummer der Datei Msi.dll, die sich im Systemverzeichnis (WINSYSDIR) befindet. Um Windows Installer zu aktualisieren, führen Sie InstmsiW.exe auf Windows NT/2000 bzw. InstmsiA.exe auf Windows 95/98/ME aus.

Unterdrücken des Neustarts nach dem Ausführen von Instmsi.exe

In der Vergangenheit war es oft erforderlich, den Computer nach dem Installieren oder Aktualisieren der Windows Installer Laufzeitdateien neu zu starten, bevor das eigentlich Setup durchgeführt werden konnte. Wenn das Betriebssystem Msi.dll geladen hat, können die Windows Installer Dateien erst bei einem Neustart mit der neueren Version überschrieben werden. Das ist typischerweise auf Systemen der Fall, die eine Shell Version verwenden, die das Windows Desktop Update enthält, z.B. Windows 98 und 2000 sowie Systeme mit Internet Explorer 4.01 SP1. Weitere Informationen zu diesem Thema finden Sie im Microsoft Knowledge Base Artikel Q262974.

Mit Windows Installer 2.0 kann dieser zusätzliche Neustart vermieden werden. Über einen Kommandozeilen-Parameter wird der Neustart unterdrückt und anschließend die neue Version von Msiexec.exe aus dem Verzeichnis geladen, in das es installiert wurde. Dazu muss das aufrufende Programm den Rückgabewert von Instmsi.exe auswerten und gegebenenfalls dem Haupt-Setup mitteilen, dass ein Neustart erforderlich ist.

Das aufrufende Programm muss die folgenden Schritte durchführen, um den Neustart nach Instmsi zu unterdrücken:

  1. Starten von Instmsi.exe mit einem der folgenden Kommandozeilen-Parameter:
      instmsi.exe /c:"msiinst.exe /delayreboot"
      instmsi.exe /c:"msiinst.exe /delayrebootq"
    In beiden Fällen wird der Neustart unterdrückt, die zweite Variante führt eine stille Installation von Windows Installer 2.0 durch.
  2. Instmsi.exe gibt ERROR_SUCCESS (0) zurück, wenn kein Neustart erforderlich ist bzw. ERROR_SUCCESS_REBOOT_REQUIRED (3010) falls ein Neustart erforderlich ist, aber unterdrückt wurde. Das aufrufende Programm muss diese Rückgabewerte auswerten und entsprechende Maßnahmen ergreifen, z.B. REBOOT=Force an das MSI-Paket übergeben wenn ein Neustart am Ende der Installation durchgeführt werden soll.
  3. Auslesen des Verzeichnisses der neu installierten Windows Installer Laufzeitdateien. Dieses Verzeichnis ist in einem Registrierungseintrag mit Namen InstallerLocation im Registrierungsschlüssel HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer hinterlegt.
  4. Wechseln des Arbeitsverzeichnisses zu dem in Schritt 3 ermittelten Pfad. Von dort wird Msiexec.exe gestartet. Auf diese Weise verwendet Ihr Setup bereits die neuen Laufzeitdateien, auch ohne einen Neustart. Falls das MSI-Setup über die API Funktion MsiInstallProduct aufgerufen wird anstatt durch das Ausführen von Msiexec.exe muss Msi.dll aus dem in Schritt 3 ermittelten Verzeichnis geladen werden.

Über den Autor

Stefan Krüger arbeitet als freiberuflicher Setup-Berater. Er bietet Unterstützung, kundenspezifische Programmierung und Seminare unabhängig von InstallShield Software Corporation an. Neben diesen Dienstleistungen beantwortet er auch Fragen in verschiedenen Newsgroups und Diskussionsforen und betreut die Internetseiten von InstallSite.de, wo Setup-Entwickler Informationen und Beispiele miteinander austauschen.

Wenn Sie Kommentare zu diesem Artikel haben oder ein Thema vorschlagen möchten, das in einem zukünftigen Artikel behandelt werden sollte, senden Sie bitte eine E-Mail an E-Mail. Artikel von Stefan Krüger, die in älteren Ausgaben des InstallShield Newsletter veröffentlicht wurden, finden Sie unter der Adresse http://www.installsite.org/isnews.htm (in Englisch).

 

  

English News Discussions Windows Installer Related Tools More Help InstallScript About InstallSite Shop Site Search
deutsch Neuigkeiten Diskussionsgruppen Windows Installer MSI FAQ Artikel     Shop Suche

Copyright © by InstallSite Stefan Krueger. All rights reserved. Legal information.
GERMAN Impressum,Datenschutzerklärung, Haftungsausschluss
By using this site you agree to the license agreement. Webmaster contact.