Souvent, lorsque vous installez un nouveau logiciel, une dll (fichier) utilisée par de nombreux autres progiciels doit être mise à niveau vers une nouvelle version. (Ceci est beaucoup plus susceptible d'être le cas lors de la mise à niveau d'une application que vous avez déjà installée.)
Si la dll est utilisée par une application en cours d'exécution, une partie de celle-ci sera chargée en mémoire et le reste sera lu à partir du disque, le cas échéant. Par conséquent, la DLL sera verrouillée sur le disque. (Pensez aux problèmes si ce n'était pas verrouillé!)
Une DLL verrouillée ne peut pas être mise à jour. Le programme d'installation demandera donc à Windows de remplacer la DLL par la nouvelle version au prochain redémarrage de la machine. D'où la nécessité d'un redémarrage.
Certains meilleurs installateurs vous indiqueront les applications à fermer avant d'exécuter le programme d'installation, laissant ainsi la DLL mise à jour sans redémarrage. Cependant, cela rend l'interface utilisateur de l'installateur plus complexe et conduit à davantage d'appels au support technique.
Un programme d'installation pour une application peut également obtenir que l'application enregistre son état, la ferme automatiquement, puis redémarre une fois la DLL mise à jour. Cela ne peut être fait que si la DLL est utilisée par une seule application. La plupart des applications à mise à jour automatique le font - ceci devrait être la norme pour les applications de marché de masse lorsqu'il y a beaucoup d'utilisateurs.
Tout ce qui précède peut conduire à une logique complexe, difficile à tester. Le test des installateurs prend beaucoup de temps, car vous devez essayer de deviner tous les états possibles de la machine d'un utilisateur. Il est donc souvent préférable qu'un installateur soit simple et fonctionne toujours, même si cela entraîne quelques redémarrages supplémentaires pour l'utilisateur. .
Ce n'est pas souvent qu'un utilisateur décide d'acheter une application différente en raison du redémarrage de l'installateur. Le vendeur passe donc son temps (argent) à travailler sur ce qui est nécessaire pour amener l'utilisateur à acheter ses applications.
Combien de fois avez-vous eu un problème après avoir installé une application qui s'est réglée quand vous avez redémarré? Pensez aux coûts de support de nombreux utilisateurs téléphonant avec des problèmes résolus juste après un redémarrage. En tant que développeur, le fait de toujours demander à l’utilisateur de redémarrer après l’installation de votre logiciel peut rapidement devenir une tâche très ardue, même lorsque vous pensez que cela n’est pas nécessaire.
----------
La plupart des systèmes d'exploitation et des logiciels ont été écrits dans les jours où l' espace disque et de mémoire coûtent beaucoup d'argent. Les applications doivent maintenant disposer d'une copie privée de toutes les dll qu'elles utilisent, ce qui rend la mise à niveau plus efficace, mais utilise davantage d'espace de stockage.
Sur les serveurs, cela se fait avec des "conteneurs", cependant, les "conteneurs" ne fonctionnent pas bien pour les logiciels bureautiques, car vous souhaitez pouvoir accéder aux données sauvegardées par une application avec une autre application. (Sinon, utilisez simplement un iPhone.)