6
votes

Service Windows ne s'affiche pas lorsqu'il est installé avec le projet de configuration

J'ai un simple service Windows développé dans vs.net 2008 et vb.net. Lorsque j'installe le service à l'aide de InstallUtil.exe à partir de l'invite de commande, il fonctionne comme un charme.

Lorsque j'essaie d'ajouter un projet de configuration et de définir la sortie et de la construire et de l'installer s'il est indiqué avec succès, il ne s'affiche pas dans les services.

Le journal des événements indique qu'il est installé avec succès. Je viens de vérifier le registre, il a placé les assemblages dans HKEY_CURrent_USER \ Software \ Microsoft \ Installateur \ Assemblys.

Mais je ne comprends pas pourquoi il ne se présente pas dans la liste des services. J'ai rafraîchi et redémarré.

Toutes les pensées ??

merci


0 commentaires

3 Réponses :


1
votes

Quelques idées:

Installez-vous sous le même compte Windows que vous essayez de l'exécuter sous? Avez-vous la propriété "installAlsuRusers" du projet de configuration sur TRUE?

Êtes-vous sûr que vous avez les propriétés du nom de produit et de titre dans le jeu de projet de configuration correctement? Peut-être que le service se présente dans la liste sous un nom différent, c'est-à-dire "SetUpProject1" ou quelque chose.

Similaire, dans la classe ProjectInstaller de votre service, dans la vue Conception, regardez les propriétés du serviceInstaller et assurez-vous que les propriétés ServiceName et DisplayName sont définies sur ce que vous voulez.


2 commentaires

Merci. J'ai vérifié les installAluSusers à True et que le titre et le titre sont corrects. Même dans le serviceInstaller, il est correct. J'ai même redémarré ma machine. EventLog Affiche le service installé avec succès.


Cette étape ne m'a pas vraiment aidé à résoudre le problème, la solution postée par Rowmark ci-dessous était l'étape manquante dans mon cas



12
votes

Solution trouvée Vous devez ajouter une action personnalisée dans votre projet MSI. Donc, dans les actions personnalisées, ajoutez la sortie de votre service à la section Installer. Cela exécutera ensuite le code d'installation requis pour votre service. C'est la même chose que ce que l'installutil.exe fait

Merci pour toute l'aide


3 commentaires

N'oubliez pas de faire la même chose sur la section "Désinstallation", sinon désinstaller le logiciel laissera un service "fantôme" là-bas.


J'ai fait ça aussi. Les logiciels sont copiés aux bons endroits, mais le service ne figure pas dans la liste.


J'ai sauté l'étape où vous créez un installateur pour le service à l'intérieur du projet de service lui-même. msdn.microsoft.com/en-us/library /zt39148a(v=VS.100).aspx



6
votes

J'ai eu le même problème et j'ai fait attention à la partie avant de créer le projet de configuration. http://msdn.microsoft.com/fr- US / Bibliothèque / Zt39148A (V = VS.100) .aspx

Pour créer les installateurs de votre service

In Solution Explorer, cliquez avec le bouton droit sur Service1.VB ou Service1.cs et sélectionnez Afficher concepteur.

Cliquez sur l'arrière-plan du concepteur pour sélectionner le service lui-même, au lieu de l'un de ses contenus.

avec le concepteur en focus, cliquez avec le bouton droit de la souris, puis cliquez sur Ajouter un programme d'installation.

Par défaut, une classe de composants contenant deux installateurs est ajoutée à votre projet. Le composant est nommé ProjectInstaller et les installateurs qu'il contient sont l'installateur de votre service et le programme d'installation du processus associé du service.

Dans la vue Conception de ProjecteurInstaller, cliquez sur ServiceInstaller1 ou ServiceInstaller1.

Dans la fenêtre Propriétés, assurez-vous que la propriété ServiceName est définie sur MyNewservice.

Définir la propriété StartType sur Automatic.

Dans le concepteur, cliquez sur ServiceProcessInstaller1 (pour un projet Visual Basic) ou ServiceProcessinstaller1 (pour un projet Visual C #). Définissez la propriété Compte sur LocalSystem. Cela entraînera l'installation du service et de fonctionner sur un compte de service local.


2 commentaires

Cela a finalement résolu pour moi (d'obtenir le nom de service correct) mais devait également ajouter l'action personnalisée comme décrit par Rowmark, sinon aucun service ne figurait du tout.


Très bonne réponse. Résolu pour moi aussi