Wie kann ich die Installation und Deinstallation von MSI-Paketen beschleunigen?

14

Bei der Installation und Deinstallation von Windows Installer-Paketen oder MSI-Dateien, wie sie genannt werden, ist der Fortschritt der Installation deutlich langsamer als bei anderen Installationspaketen.

Warum ist das so und was kann ich tun, um die Dinge zu beschleunigen ?

Stein Åsmul
quelle
1
Was Sie wissen, ich werde sofort abgelehnt, wenn ich versuche, praktische und technische Ratschläge aus der Welt des Deployments in die Welt der Systemadministration zu geben. Der Rat in diesem Thread ist zum Zeitpunkt des Schreibens sowohl logisch als auch technisch einwandfrei. Konstruktive Kritik erwünscht.
Stein Åsmul
Sie haben im Wesentlichen einen Artikel über einige Aspekte der MSI-Technologie geschrieben. Das ist cool, denke ich. Als Systemadministrator habe ich das Problem "Meine Softwareinstallationen sind so langsam" noch nie wirklich lösen müssen.
Mfinni
Dies ist eine aktualisierte Antwort auf eine Frage, die ich mehrmals auf dieser Site und anderen Stack-Exchange-Sites gesehen habe.
Stein Åsmul
3
@mfinni - bedeutet jedoch nicht, dass es nicht zum Thema gehört. Es gibt viele Probleme, die ich auf dieser Website sehe und die ich nicht erlebe.
Mark Henderson
Er fragte, warum er ohne Kommentar abgelehnt wurde. Ich habe nicht gewählt, aber eine Antwort gegeben, die ich als möglichen Grund dafür gesehen habe.
mfinni

Antworten:

15

Kurze Zusammenfassung

  • Need-for-Speed-Eigenschaften zum Optimieren:
    • MSIFASTINSTALL (versuchen Sie es vielleicht3oder7)
    • FASTOEM (zweimal überlegen , Dokumentation lesen)
    • DISABLEROLLBACK (Verstehen Sie, was es bedeutet, und was dazu führen kann, dass benutzerdefinierte Aktionen im MSI-Paket nicht ausgeführt werden. Dies hängt vom MSI-Design ab. Suchen Sie nach benutzerdefinierten Commit- und Rollback-Aktionen. )
  • Sicherheitssoftware kann angehalten werden, um die Installation zu beschleunigen.
    • Versuchen Sie während der Installation zu deaktivieren - scannen Sie Ihren Installer auf virustotal.com .
  • Versuchen Sie es mit einem Administrator-Image ( alternative Informationen ) (kein Dateiextrakt erforderlich).
    • Das Ausführen von einem lokalen Administrations-Image wäre am schnellsten.
    • Ein Netzwerk mit hoher Latenz kann die Installation verlangsamen, wenn Sie ein Netzwerkadministrator-Image verwenden.
      • Möglicherweise hoher Overhead pro Datei (kleine Dateien).
      • Das Herunterladen eines einzelnen CAB kann schneller sein (die Virenprüfung kann hier lange dauern).
  • Die Systemwiederherstellung kann global auf dem Computer deaktiviert werden (nicht nur über MSIFASTINSTALL).

Hintergrundinformation

Ein Großteil der Langsamkeit einer Windows Installer-Sitzung ist auf die Rollback-Funktionen zurückzuführen . Zunächst wird vor der Installation oder Deinstallation ein Wiederherstellungspunkt erstellt (vorausgesetzt, die Systemwiederherstellung wurde nicht deaktiviert). Anschließend werden alle betroffenen Dateien und Registrierungsschlüssel sowohl während der Deinstallation als auch während der Installation gesichert, um sicherzustellen, dass das System im Fehlerfall in den ursprünglichen Zustand zurückversetzt werden kann. Spätere Versionen von Windows Installer bieten Möglichkeiten, diese Komplexität zu deaktivieren und die Arbeit zu beschleunigen. Siehe technische Informationen weiter unten.

Ein weiterer Geschwindigkeitsfaktor ist, dass alle Komponenten und Funktionen in der MSI in der Registrierung registriert werden . Dies ist mit einem erheblichen Mehraufwand verbunden , der jedoch erforderlich ist, um wichtige Vorteile für die Unternehmensbereitstellung und die Systemadministration zu erzielen . Keine andere Bereitstellungstechnologie bietet diese Kontrollebene.

Große MSI-Dateien mit eingebetteten Quelldateien benötigen möglicherweise viel Zeit, um die Installationsdateien in den temporären Ordner zu extrahieren. Dies kann manchmal der größte Engpass von allen sein. Es wird empfohlen, eine Administratorinstallation auszuführen , um die Quelldateien aus einem solchen Paket zu extrahieren, sodass sie neben der MSI-Datei selbst angezeigt werden. Auf diese Weise müssen die Dateien nicht mehr lokal auf jedem Computer extrahiert werden, wodurch Bereitstellungszeit gespart wird. Hier ist ein weiterer Artikel, der die Dateiextraktion aus MSI-Paketen in einfachen Worten beschreibt .


Technische Information


UPDATE (Feb.2018): Sie können eine Eigenschaft namens FASTOEM unter ganz besonderen Umständen festlegen (siehe verknüpften Inhalt), um die Bereitstellung zu beschleunigen. Ich habe das noch nie ausprobiert, aber es ist eine Lektüre wert. Ich bezweifle, dass es Ihnen gelingen wird, es effektiv einzusetzen, aber es könnte einen Versuch wert sein.


Das letzte Update für Windows Installer zum Zeitpunkt des Schreibens, Windows Installer 5 (verfügbar unter Windows Server 2012, Windows 8, Windows Server 2008 R2 oder Windows 7), verfügt über eine neue Eigenschaft MSIFASTINSTALL, mit der die Installation von beschleunigt werden kann ein großes MSI-Paket . Siehe den Link oben für gültige Werte. Ich würde 3 für keinen Wiederherstellungspunkt und nur FileCosting (das Verfahren zum Bestimmen des Speicherplatzbedarfs) vorschlagen . Oder 7, um auch die Häufigkeit von Fortschrittsmeldungen zu verringern.

Normale " Kostenberechnung " bietet eine ganze Reihe von Vergleichen und Berechnungen von Funktionen, Komponenten, Datenträgern und Registrierungsdatenbanken zwischen dem, was auf dem System vorhanden ist, und dem, was installiert wird. Das meiste davon ist meiner Meinung nach selten nötig (auf Client-PCs ist im Allgemeinen viel Speicherplatz vorhanden - und in der Realität von 2018 mit kleinerer SD-Festplatte ist das Platzproblem möglicherweise wieder aufgetreten ...), aber es ist offensichtlich sicherer, es voll zu lassen Kalkulationslauf.

msiexec.exe / I "D: \ winzip112.msi" / QN MSIFASTINSTALL = 3

Es ist auch möglich, die Eigenschaft DISABLEROLLBACK festzulegen , um die Rollback-Unterstützung im MSI-Installationsprogramm zu deaktivieren. Ich würde dringend davon abraten, dies zu verwenden, es sei denn, Sie stellen einen neuen PC bereit. Dies ist ein Sonderfall, wenn Sie einfach von vorne anfangen können, wenn etwas fehlschlägt. Für einen Computer im realen Einsatz würde ich nicht empfehlen, diese Eigenschaft zu aktivieren.

Die Ironie ist, dass das Deaktivieren des Rollbacks die Dinge am schnellsten beschleunigt, wenn Sie ein großes Update-Paket ausführen, das viele Dateien ersetzt, oder eine umfangreiche Deinstallation (da bei einer Deinstallation alle entfernten Dateien in einen Rollback-Bereich verschoben werden). Es könnte sehr bedeutend sein, aber unsicher. Sie setzen diese Eigenschaft einfach in der Befehlszeile: msiexec.exe / I "D: \ winzip112.msi" / QN MSIFASTINSTALL = 3 DISABLEROLLBACK = 1

Administrative Installation

Führen Sie schließlich, wie oben in den Hintergrundinformationen erwähnt, eine Administratorinstallation der MSI-Datei aus, um Dateien zu extrahieren, damit die Extraktion nicht lokal auf jedem Computer erfolgt. Dies setzt voraus, dass Sie sich in einem recht schnellen Netzwerk befinden und das Kopieren der Dateien ohne zu große Verzögerung erfolgt. Ich nehme an, ein drahtloses Netzwerk mit hoher Latenz könnte die Geschwindigkeit verringern, wenn kleine Dateien extrahiert werden, die einzeln kopiert werden müssen. Sie führen eine Administratorinstallation durch, indem Sie einfach ein / a an die Setup-Datei übergeben:

setup.exe / a

oder

msiexec / a "D: \ winzip112.msi"

Dann müssen Sie den Eingabeaufforderungen folgen und einen Extraktionsort für die Dateien auswählen. Unter superuser.com finden Sie einen Thread, in dem diese Funktion erläutert wird .


Einige Links :

Geschwindigkeit:

Stein Åsmul
quelle
das ist nicht MSIFASTINSTALL? ohne ERam schwanz.
n611x007,
Ich habe die Eigenschaft MSIFASTINSTALL = 3 in mein Wix-Projekt eingefügt. Es gibt jedoch keinen Unterschied in der Installationszeit. <Property Id = "MSIFASTINSTALL" Value = "3" /> Ob ich etwas falsch gemacht habe?
Kathir Subramaniam
1
Dies verbessert hauptsächlich die Startzeit für ein MSI - die Erstellung eines Systemwiederherstellungspunkts kann langsam sein. Es hilft auch bei der Berechnung des Platzbedarfs, aber die eigentliche Installation ist nicht viel schneller. Warte, bis ich eine andere Antwort gefunden habe, an die ich dich senden könnte.
Stein Åsmul
Wie Sie sehen werden: keine Silberkugel, aber einige Verbesserungen, die Sie vornehmen können. Wie groß ist Ihr Setup?
Stein Åsmul