2009-10-09 7 views
9

J'ai développé un service Windows en utilisant Visual Studio 2008. Je veux installer ce service sur une machine où Visual Studio n'est pas installé, mais .NET 3.5 est installé.Comment installer un service Windows développé dans .NET 3.5?

Généralement InstallUtil.exe doit être utilisé pour l'installation d'un service Windows, mais l'utilitaire InstallUtil.exe n'est pas disponible dans .NET 3.5. Lorsque j'ai essayé d'installer ce service en utilisant .NET 2.0, le service s'affiche dans la liste des services, mais au démarrage du service, l'erreur Windows Service 1053 arrive. Comment pouvons-nous éviter ce problème et installer le service avec succès?

Répondre

4

Il existe une base de connaissances Microsoft sur ce sujet pour .Net 2.0 et VS2005. La procédure est exactement la même dans .Net 3.5 et VS2008.

http://support.microsoft.com/kb/317421

Et voici un article plus agréable avec des images pour le rendre plus clair. (Parfois, les KB ne sont pas de aussi convivial que des tutoriels que vous pouvez trouver ailleurs.)

http://aspalliance.com/1316_Working_with_Windows_Service_Using_Visual_Studio_2005.3

+0

Lorsque VS est disponible sur la machine, l'installation du service ne pose aucun problème. Si VS n'est pas disponible, comment pouvons-nous installer le service développé dans .Net3.5? – srv

+0

Le projet d'installation, une fois créé, crée un programme d'installation (fichier .msi). Copiez-le (et le setup.exe qui sera également dans le dossier de ce projet) sur la machine sur laquelle vous voulez l'installer et exécutez-le comme n'importe quel programme d'installation. Une chose à noter est que vous devrez peut-être cliquer avec le bouton droit sur le projet d'installation et choisir "build". Par défaut, les projets d'installation ne se construisent pas lorsque vous choisissez "Build Solution". Cette valeur par défaut peut être annulée dans le gestionnaire de configuration. – David

1

Si vous avez utilisé InstallUtil.exe pour installer votre service Windows, puis cela signifie que vous avez ajouté un ProjectInstaller composant à votre service. Tout ce que fait InstallUtil.exe utilise la réflexion pour trouver le composant du programme d'installation intégré à votre service et exécuter certaines méthodes dessus. Pour cette raison, vous pouvez modifier votre service Windows pour l'installer et le désinstaller, c'est-à-dire, vous ne devez plus dépendre que InstallUtil.exe soit disponible sur la machine cible. Je l'utilise avec succès depuis plusieurs mois maintenant. Suivez simplement la marche à suivre que j'ai fournie here. L'idée appartient à l'origine à Marc Gravell et ceci post.

8

C'est en fait très simple comme je l'ai fait il y a quelques jours pour quelque chose que j'ai fait.

Donc, dans votre projet de service que vous voulez:

  1. Dans l'explorateur de solution double-cliquez sur le fichier de vos services. Il devrait faire apparaître un écran qui est tout gris et parle de faire glisser des choses de la boîte à outils.
  2. Ensuite, faites un clic droit sur la zone grise et sélectionnez Ajouter un installateur. Cela ajoutera un fichier de projet d'installation à votre projet.
  3. Ensuite, vous aurez 2 composants dans la vue de conception du ProjectInstaller.cs (serviceProcessInstaller1 et serviceInstaller1). Vous devez ensuite configurer les propriétés selon vos besoins.

Vous devez maintenant créer un projet d'installation. La meilleure chose à faire est d'utiliser l'assistant d'installation.

  1. Faites un clic droit sur votre solution et ajouter un nouveau projet: Ajouter> Nouveau projet> Projets d'installation et de déploiement> Configuration Assistant
  2. Sur la deuxième étape sélectionnez « Créer un programme d'installation pour une application Windows. »
  3. Dans la 3ème étape, sélectionnez "Sortie primaire à partir de ..."
  4. Cliquez sur Terminer.

Maintenant, vous devez modifier votre installateur pour vous assurer que la bonne sortie est incluse.Cliquez avec le bouton droit sur le projet d'installation dans votre Explorateur de solutions.

  1. Sélectionnez Affichage> Editeur> Actions personnalisées. Cliquez avec le bouton droit de la souris sur l'action Installer dans l'arborescence Actions personnalisées et sélectionnez "Ajouter une action personnalisée ..."
  2. Dans la boîte de dialogue "Sélectionner un élément dans le projet", sélectionnez Dossier d'application et cliquez sur OK.
  3. Cliquez sur OK pour sélectionner l'option "Sortie primaire de ...". Un nouveau noeud devrait être créé.
  4. Répétez les étapes 4 à 5 pour les actions de validation, de restauration et de désinstallation.

Maintenant, construisez simplement votre installateur et il produira un MSI et un setup.exe. Choisissez celui que vous voulez utiliser pour déployer votre service.

0

Le message:

"Erreur 1053: Le service n'a pas répondu au début ou à la demande de contrôle en temps opportun."

est généralement une réponse générique à un problème démarrant le service Windows. Qu'est-ce que vous devriez faire est de vérifier le journal des événements et probable que vous trouverez l'erreur réel qui empêche le démarrage du service.

Questions connexes