web-dev-qa-db-fra.com

Comment puis-je installer un service Windows sur une machine sur laquelle Visual Studio n'est pas installé?

Le seul moyen d'installer Windows-Service que je connaisse consiste à utiliser " Invite de commandes Visual Studio 2008 ". Existe-t-il un moyen d'installer Windows-service sur une machine sur laquelle Visual Studio n'est pas installé (supposons que 2.X est installé.)

27

vous pouvez le faire avec installUtil qui réside dans le dossier du framework .net (sur ma machine, il s'agit de C:\Windows\Microsoft.NET\Framework\v2.0.50727).

44

Vous pouvez installer Windows Services en tant que MSI. Créez le fichier MSI en tant que projet normal attaché à votre projet de service.

Dans votre projet de service, créez une classe d'installation et ajoutez les composants serviceInstaller et serviceProcessInstaller et configurez-les selon vos besoins. Ajoutez la sortie du projet du projet de service au projet MSI, définissez les actions personnalisées du projet MSI pour l'installation, la validation, la restauration et la désinstallation sur la sortie du projet de service.

Modifiez le projet MSI comme vous le souhaitez, construisez-le, vous pourrez ensuite installer votre service sur n’importe quel ordinateur Windows sans VS.NET ou en utilisant l’utilitaire InstallUtil. Le MSI se chargera également de la désinstallation, etc.

Il existe des propriétés du composant serviceProcessInstaller que vous pouvez définir pour que le compte puisse exécuter le service, car serviceInstaller contient des propriétés pouvant être définies, telles que le nom du service. Vous devrez définir le nom du service et son parent. MSDN fournira des informations utiles sur l'utilisation de ces deux composants.

J'espère que cela t'aides.

À votre santé.

7
Ivan Dormain

Page MSDN pertinente: http://msdn.Microsoft.com/en-us/library/sd8zc8ha%28VS.80%29.aspx

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\installutil.exe yourproject.exe

Il n'est pas nécessaire que Visual Studio soit installé pour que cela fonctionne.

6
Tiberiu Ana

Oui, installutil.exe fonctionne bien, mais j'en ai eu marre de devoir me rappeler de démarrer l'invite de commande Visual Studio 2008 pour pouvoir l'utiliser. Invariablement, j'ouvrais une console ordinaire uniquement pour me rendre compte que l'emplacement installutil.exe ne faisait pas partie du chemin.

Heureusement, le installutil.exe encapsule un ensemble d'appels de réflexion. De MSDN,

Installutil.exe utilise la réflexion sur inspecter l'assemblage spécifié et trouve tous les types Installer avec le RunInstallerAttribute défini sur true. Le Cet outil exécute ensuite l’installation Méthode ou la méthode de désinstallation sur chaque instance du type Installer.

Cela signifie qu'il est possible d'ajouter du code au service Windows pour l'installer et le désinstaller. Ce faisant, je n’ai plus besoin de installutil.exe ni de l’invite de commande Visual Studio 2008 pour l’exécuter.

J'ai fourni un guide étape par étape expliquant comment faire ceci ici . L'option -install installe le service Windows et le démarre. Inversement, l'option -uninstall arrête le service et le désinstalle.

5
Matt Davis

Ouvrez une invite de commande (cmd) et tapez 

aider sc

et

sc créer

En outre, le fichier installutil.exe dont vous parlez ne se trouve que dans le répertoire .Net Framework. La commande Invite de VS configure simplement un chemin Nice, mais vous pouvez le lancer à partir de (mon chemin) C:\Windows\Microsoft.NET\Framework\v2.0.50727.

2
Benjamin Podszun

Vous n'avez pas besoin de l'invite de commande Visual Studio 2008. Vous avez besoin du programme InstallUtil.exe qui se trouve dans

C:\Windows\Microsoft.NET\Framework\v2.0.50727

Sur les machines x64, une version 64 bits est également disponible.

C:\Windows\Microsoft.NET\Framework64\v2.0.50727

Ces répertoires ne sont évidemment disponibles que lorsque .NET est installé.

2
Mark Seemann

Tout ce que vous faites est de placer les outils du framework .Net dans PATH; vous pouvez toujours utiliser: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe en spécifiant le chemin complet dans une invite de commande normale (à ajuster évidemment pour votre architecture framework/CPU)

2
Rowland Shaw

Avec la commande de Visual Studio Invite:

installutil /i fullfilepathtoservice.exe

Sans commande de Visual Studio Invite:

C:\WINNT\Microsoft.NET\Framework\v1.1.4322 installutil /i fullfilepathtoservice.exe

HTH.

2
Sunny

Je suppose que vous recherchez le programme "installutil.exe", que l’on utilise pour installer les services Windows .NET. Vous pouvez le trouver dans% windir%\Microsoft.NET\Framework\v2.0.50727

1
Daniel Chambers

étape 1> Installer le framework .net (j'utilise .net 4.0 mais vous pouvez l'utiliser comme condition requise)

étape 2> Accédez à run + cmd puis cliquez sur ok ou directement sur votre invite de commande de fenêtre (l’invite de commande non Visual Studio)

étape 3> tapez ces lignes

> cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe
> E:\test\test\bin\Debug\test.exe

E:\test\test\bin\Debug\ est le chemin où ma configuration de service de fenêtre est enregistrée

C:\Windows\Microsoft.NET\Framework\v4.0.30319\ est le chemin où InstallUtil.exe existe.

Dans les deux InstallUtil.exe existent. et chemin doit donner un espace. Sinon, cela déclenche une erreur.

Étape 4> Profitez de ... votre service est installé ... vous pouvez maintenant le vérifier depuis le panneau de configuration> outil administratif> Services.

0
Sisindry Medagam