Au lieu de créer votre propre classe, sélectionnez l'installateur de service dans l'installateur de projet et ajoutez un gestionnaire d'événement à l'événement Comitted :
private void serviceInstallerService1_Committed(object sender, InstallEventArgs e)
{
var serviceInstaller = sender as ServiceInstaller;
// Start the service after it is installed.
if (serviceInstaller != null && serviceInstaller.StartType == ServiceStartMode.Automatic)
{
var serviceController = new ServiceController(serviceInstaller.ServiceName);
serviceController.Start();
}
}
Il ne démarrera votre service que si le type de démarrage est réglé sur automatique.
2 votes
Je suis ravi de voir quelqu'un poster une question utile dont il connaît la réponse. Parfois, vous savez simplement que votre conseil sera le bienvenu. Il est également possible que quelqu'un réponde en proposant une alternative intéressante à votre solution.
0 votes
C'est exactement ce que j'espère.
1 votes
C'est une chose tellement évidente à vouloir faire. Je ne cesse d'être étonné par les choses que Microsoft laisse de côté dans son code.