J'aimerais accéder aux informations de la version de montage d'un service I "Control" avec la classe ServiceController. (c.-à-d. J'aimerais afficher "2.3.1.23"), mais je ne trouve aucune information sur la récupération des versions d'assemblage ... est-ce possible du tout? P>
EDIT FORT>: Juste pour clarifier ... Je connais uniquement le nom du service en cours d'exécution sur l'ordinateur local. Je veux accéder au "FileVersionInfo" de ce service (mieux ledit service exe), mais je ne sais pas où se trouve ce service exété. P>
3 Réponses :
Essayez ceci:
System.Reflection.Assembly.GetAssembly(typeof(ServiceController)).GetName().Version
Je pense que l'OP ne veut pas voir la version de l'Assemblée .NET qui implémente la classe ServiceController, mais les informations de version pour certains fichiers EXE ...
Si je vous comprends correctement, vous voulez obtenir la version de tout service exe. En supposant que vous connaissez le nom et le chemin de l'exécutable du service, vous voudrez peut-être essayer:
FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(<path and name of service exe>);
Oui, vous avez compris correctement, et cela fonctionnerait certes, mais je ne sais pas où se trouve l'EXE de service ... Je connais uniquement le nom qui est transmis au constructeur de la classe ServiceController.
Edité ma réponse pour vous montrer comment obtenir l'exécutable du service.
Assembly runningAssembly = Assembly.GetEntryAssembly(); if (runningAssembly == null) { runningAssembly = Assembly.GetExecutingAssembly(); } runningAssembly.GetName().Version; Use this code inside you service.
Désolé, je pensais que vous vouliez obtenir la version de montage du code à l'intérieur du service de course.