Comment accélérer l'installation et la désinstallation du package MSI?

14

Lors de l'installation et de la désinstallation des packages Windows Installer ou des fichiers MSI tels qu'ils sont appelés, la progression de l'installation apparaît nettement plus lente qu'avec les autres packages d'installation.

Pourquoi est-ce le cas et que puis-je faire pour accélérer les choses ?

Stein Åsmul
la source
1
Que savez-vous, je suis instantanément rejeté pour avoir essayé de fournir des conseils pratiques et techniques du monde du déploiement au monde de l'administration système. Les conseils contenus dans ce fil sont logiquement et techniquement valables au moment de la rédaction. Les critiques constructives sont les bienvenues.
Stein Åsmul
Vous avez essentiellement écrit un article sur certaines facettes de la technologie MSI. C'est cool, je suppose. En tant qu'administrateur système, je n'ai jamais vraiment eu besoin de résoudre le problème de «mes installations de logiciels sont si lentes».
mfinni
Il s'agit d'une réponse mise à jour à une question que j'ai vue plusieurs fois sur ce site et sur d'autres sites d'échange de pile.
Stein Åsmul
3
@mfinni - ne signifie pas que ce n'est pas sur le sujet. Il y a beaucoup de problèmes que je vois sur ce site que je ne connais pas.
Mark Henderson
Il demandait pourquoi il avait été voté contre sans commentaire. Je n'ai pas voté, mais j'ai donné une réponse que je voyais comme une raison possible.
mfinni

Réponses:

15

Résumé rapide

  • Propriétés de besoin de vitesse à modifier:
    • MSIFASTINSTALL (essayez-le, peut3-êtreou7)
    • FASTOEM (réfléchissez bien, vous devez lire la documentation)
    • DISABLEROLLBACK (comprendre ce que cela signifie, peut entraîner l'échec des actions personnalisées dans le package MSI! Cela dépend de la conception MSI - recherchez les actions personnalisées de validation et de restauration )
  • Le logiciel de sécurité peut être suspendu pour accélérer les installations.
    • Essayez de désactiver lors de l'installation - scannez votre programme d'installation sur virustotal.com .
  • Essayez d'exécuter à partir d'une image administrative ( informations alternatives ) (aucun extrait de fichier requis).
    • L'exécution à partir d'une image administrative locale serait plus rapide.
    • Un réseau à latence élevée peut ralentir l'installation si vous utilisez une image d'administration réseau?
      • Frais généraux potentiellement élevés par fichier (petits fichiers).
      • Le téléchargement d'un seul CAB pourrait être plus rapide (la détection de virus peut prendre du temps ici)?
  • La restauration du système peut être désactivée globalement sur la machine (pas seulement via MSIFASTINSTALL).

Informations d'arrière-plan

Une grande partie de la lenteur d'une session Windows Installer est due à ses capacités de restauration . Tout d'abord, il crée un point de restauration avant l'installation ou la désinstallation (à condition que la restauration du système n'ait pas été désactivée). Ensuite, il sauvegardera tous les fichiers et clés de registre concernés pendant la désinstallation et l'installation pour garantir que le système peut être restauré à son état d'origine en cas d'erreur. Les versions ultérieures de Windows Installer proposent des moyens de désactiver une partie de cette complexité et d'accélérer les choses. Voir les informations techniques ci-dessous.

Un autre facteur de vitesse est que tous les composants et fonctionnalités du MSI seront enregistrés dans le registre . Cela implique un peu de frais généraux , mais est nécessaire pour obtenir d' importants avantages en termes de déploiement et d'administration système . Aucune autre technologie de déploiement ne propose ce niveau de contrôle.

Les gros fichiers MSI avec des fichiers source intégrés peuvent nécessiter beaucoup de temps pour extraire ses fichiers d'installation dans le dossier temporaire. Cela peut parfois être le plus gros goulot d'étranglement de tous. Il est recommandé d' exécuter une installation d'administration pour extraire les fichiers source d'un tel package afin qu'ils apparaissent côte à côte avec le fichier MSI lui-même, éliminant ainsi la nécessité d'extraire les fichiers localement sur chaque machine et donc de gagner du temps de déploiement. Voici un autre article décrivant l' extraction de fichiers à partir de packages MSI en termes simples .


Informations techniques


MISE À JOUR (février 2018): Vous pouvez définir une propriété appelée FASTOEM dans des circonstances très spéciales (voir le contenu lié) afin d'accélérer le déploiement. Je n'ai jamais essayé cela, mais cela vaut la peine d'être lu. Je doute que vous réussissiez à l'utiliser efficacement, mais cela pourrait valoir la peine d'essayer.


La dernière mise à jour de Windows Installer au moment de la rédaction, Windows Installer 5 (disponible sur Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7), présente une nouvelle propriété MSIFASTINSTALL qui peut être utilisée pour accélérer l'installation de un grand package MSI . Voir le lien ci-dessus pour les valeurs valides. Je proposerais 3 pour aucun point de restauration , et seulement FileCosting (le processus de détermination des besoins en espace disque). Ou 7 pour réduire également la fréquence des messages de progression.

Les « coûts » normaux comportent un grand nombre de comparaisons et de calculs de fonctionnalités, de composants, de disques et de registres entre ce qui existe sur le système et ce qui est installé. La plupart de cela est rarement nécessaire à mon avis (l'espace disque est généralement abondant sur les PC clients - et dans la réalité de 2018 avec un disque SD plus petit, le problème d'espace pourrait avoir refait surface ...), mais il est évidemment plus sûr de laisser plein exécution des coûts.

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

Il est également possible de définir la propriété DISABLEROLLBACK pour désactiver la prise en charge de la restauration dans le programme d'installation MSI. Je vous déconseille fortement d'utiliser ceci à moins que vous n'utilisiez un nouveau PC. Il s'agit d'un cas particulier où vous pouvez recommencer en cas d'échec. Pour un ordinateur en utilisation réelle, je ne recommanderais pas d'activer cette propriété.

L'ironie est que la désactivation de la restauration accélérera le plus si vous exécutez un énorme package de mise à jour qui remplace de nombreux fichiers ou toute désinstallation importante (car une désinstallation déplacera tous les fichiers supprimés vers une zone de restauration). Cela pourrait être assez important, mais dangereux. Vous venez de définir cette propriété sur la ligne de commande: msiexec.exe / I "D: \ winzip112.msi" / QN MSIFASTINSTALL = 3 DISABLEROLLBACK = 1

Installation administrative

Et enfin, comme mentionné ci-dessus dans les informations générales, exécutez une installation administrative du fichier MSI pour extraire les fichiers afin que l'extraction ne se produise pas localement sur chaque machine. Cela suppose que vous êtes sur un réseau assez rapide et que la copie des fichiers s'effectue sans trop de retard. Je suppose qu'un réseau sans fil à haute latence pourrait ralentir les choses avec de petits fichiers extraits qui doivent être copiés un par un. Vous exécutez une installation d'administration en passant simplement un / a au fichier d'installation:

setup.exe / a

ou

msiexec / a "D: \ winzip112.msi"

Ensuite, vous devez suivre les invites et sélectionner un emplacement d'extraction pour les fichiers. Voir superuser.com pour un fil de discussion sur cette fonctionnalité.


Quelques liens :

La vitesse:

Stein Åsmul
la source
n'est-ce pas MSIFASTINSTALL? sans ERsur la queue.
n611x007
J'ai ajouté la propriété MSIFASTINSTALL = 3 dans mon projet Wix. Pourtant, il n'y a pas de différence dans le temps d'installation. <Property Id = "MSIFASTINSTALL" Value = "3" /> Si j'ai fait quelque chose de mal?
Kathir Subramaniam
1
Il améliore principalement le temps de «décollage» d'un MSI - la création d'un point de restauration système peut être lente. Il aide également au calcul des besoins en espace, mais l'installation proprement dite n'est pas beaucoup plus rapide. Attendez que je trouve une autre réponse à laquelle je pourrais vous envoyer.
Stein Åsmul
Comme vous le verrez: pas de solution miracle, mais quelques ajustements que vous pouvez faire. Quelle est la taille de votre configuration?
Stein Åsmul