Il y a beaucoup d'exemples comment installer service Windows en une ligne:Windows .Net services: installation de l'assemblage référencé
ManagedInstallClass.InstallHelper(
new[] { Assembly.GetExecutingAssembly().Location });
Cela fonctionne bien jusqu'à ce que la classe de service est déclaré dans le module exe. Mais le même code ne fonctionne pas pour moi si la classe de service est dans l'assembly référencé (non déclaré dans l'exécutable, mais dans la DLL liée). Dans ce cas, le service est également enregistré mais ne peut pas être démarré car il est enregistré avec dll path et points to dll (le message "le service n'est pas un exécutable win32" apparaît dans le journal des événements lorsque j'essaie de le démarrer).
Si je change GetExecutingAssembly().Location
en chemin exécutable, aucun programme d'installation n'est trouvé et le service n'est pas enregistré du tout.
Est-il possible de placer la classe de service dans l'assembly référencé et de toujours pouvoir enregistrer le service avec un minimum d'effort?
Merci d'avance!