web-dev-qa-db-fra.com

ClickOnce déployer un service Windows?

Est-il possible de déployer un service Windows à l'aide de ClickOnce? Si oui, comment y parvenez-vous?

Actuellement, nous devons utiliser un projet de déploiement, et le processus d'installation pourrait être considérablement simplifié en utilisant ClickOnce.

51
NoizWaves

AFAIK, vous ne pouvez pas vraiment utiliser ClickOnce de bout en bout pour déployer un service; il y a des problèmes avec les emplacements des fichiers (ClickOnce s'installe dans le profil d'un utilisateur) et l'installation (ClickOnce est largement sans effet secondaire).

Vous pouvez cependant écrire un service en tant qu'exe qui peut s'installer/désinstaller automatiquement à partir de la liste des services, comme ça ; Fondamentalement, vous l'écrivez comme un exe de console et gérez certains arguments de ligne de commande, en utilisant AssemblyInstaller pour [dés] installer à partir de l'assembly actuel. Un autre avantage est que la même approche peut être utilisée pour faciliter le débogage, car vous pouvez l'exécuter à partir de la ligne de commande.

29
Marc Gravell
8
OrElse

Au lieu de ClickOnce, j'aime utiliser l'approche utilisant Inno Setup, comme ici https://stackoverflow.com/a/1450051/3962

Vous avez plus de contrôle sur ce qui et comment seront copiés et exécutés.

Comme l'a dit Marc Gravell dans sa réponse, je crée un exe qui installe automatiquement mon service, puis j'utilise Inno Setup pour l'empaqueter et le déployer. Après l'installation d'Inno, il exécute automatiquement l'exe puis mon exe installe mon service.