J'ai un service Windows .Net. Je souhaite créer un programme d'installation pour installer ce service Windows.
Fondamentalement, il doit faire ce qui suit:
- Pack
installutil.exe
(est-ce nécessaire?) - Exécutez
installutil.exe
MyService.exe - Démarrez MyService
En outre, je souhaite fournir un programme de désinstallation qui exécute la commande suivante:
installutil.exe /u MyService.exe
Comment procéder avec Inno Setup?
c#
windows-services
inno-setup
devnull
la source
la source
Réponses:
Vous n'en avez pas besoin
installutil.exe
et vous n'avez probablement même pas le droit de le redistribuer.Voici comment je le fais dans mon application:
Fondamentalement, vous pouvez demander à votre service d'installer / de désinstaller seul en utilisant
ManagedInstallerClass
comme indiqué dans mon exemple.Ensuite, il suffit d'ajouter dans votre script InnoSetup quelque chose comme ceci:
la source
Filename: "net.exe"; Parameters: "start WinServ"
. si cela ne fonctionne pas, vous pouvez simplement ajouter un autre commutateur --start à votre application c # et démarrer le service Windows directement à partir du programme en utilisant la classe ServiceController ( msdn.microsoft.com/en-us/library/… ).using System.Reflection;
ou changementAssembly
àSystem.Reflection.Assembly
dans le code ci - dessus.Voici comment je l'ai fait:
Apparemment, la configuration d'Inno a les constantes suivantes pour référencer le dossier .NET sur votre système:
Plus d'informations disponibles ici .
la source
Vous pouvez utiliser
pour créer un service. Voir " sc.exe " pour savoir comment démarrer, arrêter, vérifier l'état du service, supprimer le service, etc.
la source
Si vous souhaitez éviter les redémarrages lors de la mise à niveau de l'utilisateur, vous devez arrêter le service avant de copier l'exe et recommencer après.
Il existe des fonctions de script pour le faire dans Service - Fonctions pour démarrer, arrêter, installer, supprimer un service
la source