Installation de Windows Service créé dans Visual Studio
Quand je crée un nouveau Service Windows dans Visual Studio 2010, je reçois le message indiquant à l'utilisation InstallUtil net et de commencer à exécuter le service.
J'ai essayé les étapes suivantes:
- Créer un nouveau Fichier de projet -> New -> Projet -> Windows Service
- Nom Du Projet: TestService
- De construction du projet tel qu'il est (Service1 constructeur, OnStart, OnStop)
- Ouvrir l'invite de commandes, exécutez "C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" TestService.exe
- Exécuter net start TestService.
Sortie de l'étape 4
L'exécution d'une installation négociée.
Début de l'Installation de la phase de l'installation.
Voir le contenu du fichier journal pour le
C:\Users\myusername\Documents\Visual Studio
2010\Projects\TestService\TestService\obj\x86\Debug\TestService.exe
l'assemblée progrès.Le fichier est situé à C:\Users\myusername\Documents\Visual Studio
2010\Projects\Tes
tService\TestService\obj\x86\Debug\TestService.InstallLog.L'installation de l'assembly 'C:\Users\myusername\Documents\Visual Studio
2010\Projects\TestS ervice\TestService\obj\x86\Debug\TestService.exe'.Paramètres affectés sont:
logtoconsole =
logfile = C:\Users\myusername\Documents\Visual Studio
2010\Projects\TestService\T
estService\obj\x86\Debug\TestService.InstallLogassemblypath = C:\Users\myusername\Documents\Visual Studio
2010\Projects\TestServ ice\TestService\obj\x86\Debug\TestService.exePas de public installateurs avec le RunInstallerAttribute.Oui attribut
peut être trouvé dans la C:\Users\myusername\Documents\Visual Studio
2010\Projects\TestService\TestSe rvice\obj\x86\Debug\TestService.exe
de l'assemblée.L'Installation a terminé l'étape avec succès, et la phase de validation est
début.Voir le contenu du fichier journal pour le
C:\Users\myusername\Documents\Visual Studio
2010\Projects\TestService\TestService\obj\x86\Debug\TestService.exe
l'assemblée progrès.Le fichier est situé à C:\Users\myusername\Documents\Visual Studio
2010\Projects\Tes
tService\TestService\obj\x86\Debug\TestService.InstallLog.Commettre l'assembly 'C:\Users\myusername\Documents\Visual Studio
2010\Projects\TestS ervice\TestService\obj\x86\Debug\TestService.exe'.Paramètres affectés sont:
logtoconsole =
logfile = C:\Users\myusername\Documents\Visual Studio
2010\Projects\TestService\T
estService\obj\x86\Debug\TestService.InstallLogassemblypath = C:\Users\myusername\Documents\Visual Studio
2010\Projects\TestServ ice\TestService\obj\x86\Debug\TestService.exePas de public installateurs avec le RunInstallerAttribute.Oui attribut
peut être trouvé dans la C:\Users\myusername\Documents\Visual Studio
2010\Projects\TestService\TestSe rvice\obj\x86\Debug\TestService.exe
de l'assemblée.Supprimer InstallState fichier, car il n'y a pas d'installateurs.
La phase de validation est terminée avec succès.
Le transactionnel installation terminée.
Sortie de l'étape 5
Le nom du service n'est pas valide.
Plus d'aide est disponible en tapant NET HELPMSG 2185.
Vous devez vous connecter pour publier un commentaire.
Vous devez ouvrir le Service.cs fichier dans l'éditeur, cliquez droit et choisissez dans le menu l'option "Ajouter le programme d'installation".
Il ne s'installe pas, tout droit sorti de la boîte... vous avez besoin pour créer le programme d'installation de la classe de première.
Certains de référence sur le service programme d'installation:
Comment: Ajouter des programmes d'installation pour Votre Application de Service
Assez vieux... mais c'est de quoi je parle:
Les Services Windows en C#: l'Ajout de l'Installateur (partie 3)
En faisant cela, une
ProjectInstaller.cs
sera automatiquement créé. Ensuite, vous pouvez double-cliquer sur ce, entrez le designer, et configurer les composants:serviceInstaller1
a les propriétés du service lui-même:Description
,DisplayName
,ServiceName
etStartType
sont les plus importants.serviceProcessInstaller1
a cette propriété importante:Account
qui est le compte dans lequel le service sera exécuté.Par exemple:
Regardant:
Il semble que vous ne pouvez pas avoir une classe du programme d'installation dans votre code. C'est une classe qui hérite de
Installer
qui dirainstallutil
comment installer votre exécutable en tant que service.P. s. J'ai ma petite auto-installation/debuggable Service Windows modèle ici que vous pouvez copier un code ou de l'utilisation: Debuggable, L'Auto-Installation De Windows Service
Voici une autre façon de faire de l'installateur et de se débarrasser de ce message d'erreur. Aussi, il semble que VS2015 express n'ont pas le "Ajouter le programme d'installation" dans le menu.
Vous suffit de créer une classe et ajoutez le code ci-dessous et ajouter la référence System.Configuration.Install.dll.
Habituellement deux types de problèmes:
Un autre problème possible (ce qui j'ai couru dans la):
Assurez-vous que le
ProjectInstaller
classe estpublic
. Pour être honnête, je ne suis pas sûr exactement comment je l'ai fait, mais j'ai ajouté des gestionnaires d'événements pourProjectInstaller.Designer.cs
, comme:this.serviceProcessInstaller1.BeforeInstall += new System.Configuration.Install.InstallEventHandler(this.serviceProcessInstaller1_BeforeInstall);
Je suppose que lors de l'automatique processus de création de la fonction de gestionnaire dans
ProjectInstaller.cs
il a changé la définition de la classe depublic class ProjectInstaller : System.Configuration.Install.Installer
à
partial class ProjectInstaller : System.Configuration.Install.Installer
remplacement la
public
mot-clé avecpartial
. Ainsi, afin de réparer, il doit êtrepublic partial class ProjectInstaller : System.Configuration.Install.Installer
J'utilise Visual Studio 2013 de la Communauté de l'édition.
Stealth Changement dans VS 2010 et .NET 4.0 et versions Ultérieures
Pas de public installateurs avec le RunInstallerAttribute.Oui attribut peut être trouvé
Il y a un alias de changer de compilateur ou de nettoyage .NET qui peut révéler ce petit tweak pour votre cas spécifique.
Si vous avez le code suivant ...
Vous devrez peut-être mettre à jour
C'est comme un alias changé sous les couvertures au moment de la compilation ou à l'exécution et vous obtiendrez cette erreur de comportement. Le ci-dessus explicite de changement de RunInstallerAttribute(vrai) fixe dans l'ensemble de nos scénarios d'installation sur tous les ordinateurs.
Après l'ajout d'un projet ou d'un service programme d'installation, puis vérifier le “vieux” RunInstaller(vrai) et de le modifier pour le nouveau RunInstallerAttribute(vrai)
Encore un autre attraper, j'ai couru dans: assurer votre Installateur classe dérivée (généralement
ProjectInstaller
) est au sommet de la hiérarchie d'espace de noms, j'ai essayé d'utiliser un public de classe dans une autre classe, mais cette résultats dans la même vieille erreur:Pas de public installateurs avec le RunInstallerAttribute.Oui attribut peut être trouvé