web-dev-qa-db-fra.com

Impossible d'installer le service Windows à l'aide de l'outil InstallUtil

J'utilise VS 2012 et, depuis que les projets d'installation ont été supprimés, je dois utiliser InstallUtil.exe.

Je n'ai pas de classe projectInstaller dans mon application de service Windows. Je lance l'invite de commande: 

installutil FilesMonitoringService.exe 

Je reçois: 

C:\Programmes\Microsoft Visual Studio 8\VC #> installutil "C:\Programmes\Mic Rosoft Visual Studio 8\VC #\CSharpProjects\MyService\MyService\bin\Version\MyServ Ice. EXE" Utilitaire d’installation de Microsoft .NET Framework Version 2.0.50727.42 Copyright (c) Microsoft Corporation. Tous les droits sont réservés.

Exécuter une installation transactionnelle.

Début de la phase d'installation de l'installation . Consultez le contenu du fichier journal pour C:\Program Files\Microsoft Visual Studi o 8\VC #\CSharpProjects\MyService\MyService\bin\Release\MyService.exe. le progrès. Le fichier se trouve dans C:\Program Files\Microsoft Visual Studio 8\VC #\CSharpProj ects\MyService\MyService\bin\Version\MyService.InstallLog . Installation de l'assembly 'C:\Programmes\Microsoft Visual Studio 8\VC #\CSharpProjec ts\MyService\MyService\bin\Version\MyService.exe '. Les paramètres concernés sont: logtoconsole = assemblypath = C:\Programmes\Microsoft Visual Studio 8\VC #\CSharpProjects\ MyService\MyService\bin\Release\MyService.exe logfile = C:\Programmes\Microsoft Visual Studio 8\VC #\CSharpProjects\MySer vice\MyService\bin\Release\MyService.InstallLog Aucun programme d'installation public doté de l'attribut RunInstallerAttribute.Yes n'a pu être trouvé dans C:\Programmes\Microsoft Visual Studio 8\VC #\CSharpProjects\MyService\ MyService\bin\Release\MyService.exe Assembly.

La phase d'installation s'est terminée avec succès et la phase d'engagement commence . Consultez le contenu du fichier journal pour C:\Program Files\Microsoft Visual Studi o 8\VC #\CSharpProjects\MyService\MyService\bin\Release\MyService.exe. le progrès. Le fichier se trouve dans C:\Program Files\Microsoft Visual Studio 8\VC #\CSharpProj ects\MyService\MyService\bin\Version\MyService.InstallLog . Validation de l’assemblage 'C:\Programmes\Microsoft Visual Studio 8\VC #\CSharpProjec ts\MyService\MyService\bin\Version\MyService.exe '. Les paramètres concernés sont: logtoconsole = assemblypath = C:\Programmes\Microsoft Visual Studio 8\VC #\CSharpProjects\ MyService\MyService\bin\Release\MyService.exe logfile = C:\Programmes\Microsoft Visual Studio 8\VC #\CSharpProjects\MySer vice\MyService\bin\Release\MyService.InstallLog Aucun programme d'installation public doté de l'attribut RunInstallerAttribute.Yes n'a pu être trouvé dans C:\Programmes\Microsoft Visual Studio 8\VC #\CSharpProjects\MyService\ MyService\bin\Release\MyService.exe Assembly . Supprimez le fichier InstallState car il n'y a aucun installateur.

La phase de validation s'est terminée avec succès.

L'installation effectuée est terminée.

C:\Programmes\Microsoft Visual Studio 8\VC #>

OK, tout semble avoir été installé. Mais! Lorsque je vais au gestionnaire de tâches sur la page Services, je ne trouve pas mon service.

Quelle pourrait être la raison? 

Merci d'avance!

Modifications: J'ai signalé que je n'ai pas de classe projectInstaller, car si je l'ajoute (dans le concepteur -> j'ajoute un programme d'installation) et que j'exécute la commande installutil, je reçois:

Installation de FilesMonitoringService ... Création de EventLog FilesMonitoringService dans une application log jornal ...

Sur cette étape de configuration, l'exception s'est produite.

System.Security.SecurityException: la source n’a pas été trouvée, mais n’a pas été trouvée par un ou tous les journaux de journal. Non disponible jornals: Sécurité.

La phase de recul commence. 

// beaucoup de texte 

La phase de recul a réussi

Opération de groupe de configuration exécutée . L'installation a échoué et le recul a été exécuté.

Donc, si j'ajoute projectInstller à mon service Windows, l'installation avec installUtil échoue.
Voici le code généré: 

[RunInstaller(true)]
public partial class ProjectInstaller : Installer
{
    public ProjectInstaller()
    {
        InitializeComponent();
    }
    private void serviceInstaller1_AfterInstall(object sender, InstallEventArgs e)
    {}
    private void serviceProcessInstaller1_AfterInstall(object sender, InstallEventArgs e)
    {}
}

Mabby je dois mettre du code dans les méthodes afterInstall? Je mets également cette propriété dans une fenêtre properties

serviceInstaller1: ServiceName -> FileMonitoringService, StartType -> Automatique
serviceProcessInstaller1: Compte -> LocalSystem

Ou peut-il être implémenté sans projectInstaller? 

12
Aleksei Chepovoi

Ok, il y a deux choses: 

1) Vous avez besoin de projectInstaller.
2) Votre projet -> propriétés; Projet de démarrage -> YourProject.Program
3) construire
4) «Exécuter en tant qu’administrateur», la commande Invite! 

Tout fonctionne maintenant.

lien tutoriel complet

18
Aleksei Chepovoi

Je n'ai pas de copie de VS2012 pour le tester maintenant, mais je pense que votre problème a quelque chose à voir avec le 

Je n'ai pas de classe projectInstaller dans mon application de service Windows

partie.

De msdn :

Les composants d'installation enregistrent un service individuel sur le système l’installation et laissez le Gestionnaire de contrôle de services savoir que le service existe

1
Gama Felix

Cela semble anodin, mais vérifiez bien lorsque vous écrivez les arguments installutill, car vous pourriez confondre le fichier exe du service avec un autre fichier exe généré par la compilation d'un projet référencé (sans installateur de service) et le faire échouer.

0
NahuelGQ