Je construis un framework for building scheduling services réutilisable en utilisant le .NET Framework. Mon code est distribué sous la forme d'une bibliothèque, qui est ensuite référencée par l'utilisateur dans une application console. Dans le point d'entrée principal de l'application, l'utilisateur est invité à transférer le contrôle à une méthode statique dans la bibliothèque, qui commencera la planification du travail s'il fonctionne en mode non interactif, lire les arguments de commande et effectuer des tâches de maintenance telles que l'installation. Pour installer l'application en tant que service Windows à l'aide de l'espace de noms System.Configuration.Install
, l'utilisateur devra ajouter un descendant de classe de Installer
à l'assembly d'application, indiquant au framework comment installer le service. Je préférerais vraiment le faire une fois pour toutes dans la bibliothèque, mais malheureusement la classe d'installateur a pour être dans l'assemblage de l'application. La solution que je regarde en ce moment, consiste à définir une classe d'installateur dans la bibliothèque, et demander à l'utilisateur d'en hériter dans une classe publique, sans ajouter de code supplémentaire. Pendant que cela fonctionne, l'utilisateur doit écrire un code de plaque de chaudière ennuyeux.Comment installer le service Windows sans étendre le programme d'installation?
Quelles sont les alternatives à l'extension Installer
? Puis-je accéder au framework d'installation géré de manière plus directe?
La classe d'installateur devrait encore résider dans l'ensemble d'entrée, pas dans une bibliothèque référencée, non? –
Oui, la classe d'installation réside dans l'ensemble d'entrée mais est pratiquement vide. Je n'ai pas encore essayé de compléter omettre le programme d'installation mais peut-être même que cela serait possible car c'est seulement nécessaire par InstallUtil. – Filburt
Notez que "sc.exe" n'est pas disponible dans Win2000 (pas dans l'installation par défaut, mais peut être installé avec certains tool-kit de MS) – kibab