J'ai développé un service Windows avec un projet d'installation utilisant Visual Studio 2008. Lorsque j'effectue une mise à niveau, j'obtiens l'avertissement suivant:Comment arrêter un service Windows pour effectuer une installation de mise à niveau?
Les applications suivantes utilisent des fichiers que le programme d'installation doit mettre à jour. Vous pouvez fermer les applications et cliquer sur "Réessayer" ou cliquer sur "Continuer" pour que le programme d'installation poursuive l'installation et remplace ces fichiers lorsque votre système redémarre. Je voudrais arrêter le service Windows pendant l'installation de la mise à niveau.
J'ai essayé de créer une action personnalisée et de surcharger le methoc OnBeforeInstall, cependant cela est appelé trop tard après que le message contextuel d'avertissement s'est déjà produit.
Y a-t-il un moyen d'accomplir cela dans le cadre du programme d'installation de msi? Je préférerais ne pas avoir à faire cela comme une tâche distincte avant d'exécuter l'installateur msi.
Mise à jour:
Sur la base d'autres recherches que j'ai trouvé que la base de données MSI ne supporte cela, mais le programme d'installation intégré Visual Studio projets (configuration) ne fournissent pas un moyen de le faire. Il faut soit modifier la base de données MSI, soit aller avec WiX ou un installateur commercial.
Pouvez-vous exécuter une commande shell de l'installateur? Si c'est le cas, vous pouvez exécuter net stop _service name_ comme l'une de vos premières tâches pour le tuer. –
Ug, ne fais pas ça. Windows Installer prend en charge nativement les services d'arrêt/démarrage. Utilisez simplement la table ServiceControl. –