web-dev-qa-db-fra.com

Comment mettre à jour un service Windows installé?

J'ai écrit un service Windows en C #.

Je l'ai depuis installé sur ma machine, et il fonctionne très bien.

Lorsque vous installez un service, le exe est-il copié quelque part? Ou pointe-t-il vers mon dossier bin?

C'est pour moi de savoir que lorsque je mets à jour mon code de temps en temps, dois-je désinstaller et réinstaller mon service pour le mettre à jour?

28
shenku

Si l'emplacement du service Windows n'a pas changé et que le nom de son exécutable n'a pas changé, vous ne devriez pas avoir à le désinstaller et à le réinstaller.

Vous pouvez simplement arrêter le service, mettre à jour son exécutable avec une nouvelle version et le redémarrer.

Cette approche a fonctionné de manière fiable pour moi pendant de nombreux mois de développement de services Windows au cours desquels j'ai simplement mis à jour les implémentations des services ServiceBase, les méthodes privées, etc. et cela permet un développement itératif assez rapide lorsque vous avez net stop et net start commandes pour vos services dans l'historique d'une fenêtre de commande Alt+Tab plus, revenir en arrière à travers l'histoire et frapper Enter lorsque vous trouvez la commande dont vous avez besoin.

32
J0e3gan

Vous pouvez vérifier le chemin du service installé en ouvrant services.msc à partir de Exécuter. Cliquez ensuite avec le bouton droit sur votre service et voyez le "Chemin vers l'exécutable".

Si cela pointe vers votre répertoire bin, il sera mis à jour à chaque fois que vous compilez avec succès.

enter image description here

3
Riz

Vous devez désinstaller l'ancien service Windows et installer une nouvelle version du service Windows.

désinstaller:

   installutil /u yourproject.exe

installer:

   installutil yourproject.exe
1
user1968030